-1
votes

Analysant la regex avec un délimiteur de tuyau évasé

im essayant d'analyser xxx

avec regex ( https: //regex101.com/r/klzioa/1/ )

J'ai actuellement xxx

qui analyse tout correctement sauf \ | Équipe \ | vs \ | équipe \ |

Je m'attendrais à ce que cela soit analysé comme | équipe | vs | équipe |

Si je modifie la regex en xxx

Il analyse séparément les équipes plutôt que conjointement avec le tuyau échappé

En gros, je veux analyser les champs entre les tuyaux cependant, s'il y a des tuyaux évasés, je voudrais les capturer. Donc, avec mon exemple, je m'attendrais à xxx


0 commentaires

3 Réponses :


1
votes

Vous pouvez alterner entre:

  • \\. - une barre oblique inverse suivie de n'importe quoi, ou
  • [^ | \\] + - tout sauf un tuyau ou une barre oblique inverse xxx

    https://regex101.com/r / Klzioa / 2

    Notez qu'il n'y a pas besoin de la quantifier possessif, car aucun retour arrière ne se produira.

    Si vous souhaitez également remplacer \ | < / code> s avec | s, puis faites-le ensuite: correspondre à "Code> \\\\ | et remplacez par |


2 commentaires

Dans cette situation \ | \ | | | vs \ | équipe \ | est capturé. Cela signifie-t-il que je devrais supprimer le «` »moi-même après manuellement?


Une expression régulière peut généralement correspondre Substrings, ou remplacer une partie d'une correspondance, mais ne faites pas les deux en même temps. Si vous souhaitez remplacer le \ | s avec | s, vous devrez le faire ensuite.



1
votes

Pour manipuler l'échappement, vous devez correspondre à une barre oblique inverse et au caractère après une seule "élément".

Replace: \\(.)
With: $1


2 commentaires

Dans cette situation \ | \ | | | vs \ | équipe \ | est capturé. Cela signifie-t-il que je devrais supprimer le «` »moi-même après manuellement?


Oui, vous auriez effectivement besoin de le faire. Remplacez \\ (.) avec 1 $ .



1
votes

Utilisation: xxx

démo et explication < / p>


1 commentaires

@Tomalak: True, je viens de copier la regex d'Op.