Comment diviser une chaîne avec un séparateur qui n'est pas précédé d'un caractère?

Michael

J'ai une ficelle str = "Jake!!!Jackson!!!Tyson\\!!!!!!Pete"

Je veux diviser la chaîne !!!mais l'ignorer si le caractère précédent !!!est "\\".

Je suis venu str.split("(?<!\\\\)!!!");

Mais la sortie est Jake,Jackson,Tyson\!,!!Peteet la sortie attendue estJake,Jackson,Tyson\!!!,Pete

Cela peut-il être accompli par regex?

JvdV

Je pense que ce qui suit pourrait fonctionner:

(?<!\\)!!!(?=(?:!!!)*(?!!))

Voir la démo en ligne

  • (?<!\\) - Affirmez la position non précédée d'une barre oblique inverse littérale.
  • !!! - Littéralement trois points d'exclamation.
  • (?= - Ouvrir une anticipation positive:
    • (?: - Ouvrir un groupe sans capture:
      • !!! - Littéralement trois points d'exclamation.
      • )* - Fermez le groupe sans capture et faites correspondre plus de 0 fois.
    • (?!!) - Recherche négative pour le point d'exclamation.
  • ) - Fermez la recherche positive.

Cela diviserait une chaîne comme Jake!!!Jackson!!!Tyson\!!!!!!!Peteinclure un NULL aussi (en supposant que c'est ce que vous recherchez). En tant que chaîne Java:"(?<!\\\\)!!!(?=(?:!!!)*(?!!))"

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Diviser une chaîne avec un nombre inconnu d'espaces comme séparateur en Python

Comment diviser une chaîne par un autre séparateur

Sélectionnez une chaîne qui n'est pas une propriété d'un autre objet

Comment diviser une chaîne par un caractère non directement précédé d'un caractère du même type?

Comment diviser une chaîne délimitée par un tube (qui n'est pas entre guillemets

Comment diviser une chaîne à la 3e occurrence d'un caractère C #

Comment diviser une chaîne au niveau d'un séparateur à moins que ce séparateur ne soit suivi d'un certain modèle?

Comment trouver une phrase qui n'est PAS à la limite d'un mot à partir d'une chaîne dans Regex?

Comment diviser une chaîne et inclure un séparateur?

Comment diviser une liste de chaînes en fonction d'une chaîne de délimitation qui se termine par un caractère spécifique en Python?

Comment ignorer un caractère spécifique qui n'est pas toujours présent, avec sscanf?

Fractionnement d'une chaîne avec un séparateur ':'

Comment puis-je diviser une chaîne par des espaces blancs qui ne sont pas précédés d'un certain caractère?

Comment diviser une chaîne par une ou plusieurs occurrences d'un seul caractère

Comment diviser une chaîne en fonction d'un caractère

Regex: supprimer la chaîne qui n'est pas précédée d'un caractère spécifique

Diviser une chaîne avec un séparateur par virgule mais pas lorsqu'elle est entourée de []

Comment envoyer un caractère d'une chaîne qui n'est PAS une lettre ou un nombre à la fin de la chaîne?

Comment diviser une chaîne par espace, qui n'est pas enveloppée par des caractères spécifiés?

Comment diviser une chaîne Java en utilisant un caractère qui n'a pas de caractère d'échappement devant lui

Comment diviser une chaîne par la première occurrence d'un caractère (:) en JavaScript

Comment diviser une chaîne en utilisant regex avec le caractère de début correspond à l'un de ces <= | >= | = | !=

Python - Comment diviser une chaîne qui inclut un caractère d'échappement comme délimiteur ?

Comment diviser une chaîne en . et non s'il est précédé d'un double slash ?

Comment diviser une chaîne avec un caractère qui a des multiples du même caractère ?

Impression d'un élément qui n'est pas une chaîne régulière avec python webdriver

Comment diviser une chaîne, où un caractère est un séparateur et l'autre est un contenu

Remplacer le séparateur décimal dans une chaîne qui n'est pas numérique

meilleure façon de diviser la chaîne en Vec<String> au niveau du caractère, lorsqu'elle n'est pas précédée d'un autre caractère sans contournement dans Rust ?

TOP liste

  1. 1

    Comment exécuter un fichier python avec des droits d'administrateur dans pycharm

  2. 2

    obtenir le nombre de marqueur affiché sur la carte

  3. 3

    comment obtenir un objet de requête dans les tests unitaires de django?

  4. 4

    Microsoft.WebApplication.targets

  5. 5

    Comment ajouter un texte dans un texte Python/Tkinter

  6. 6

    comment convertir une chaîne en un tuple dateutil jour de la semaine sans utiliser eval

  7. 7

    mongo kafka connect source

  8. 8

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  9. 9

    Dans les modèles Hugo, comment vérifier la longueur du tableau de fichiers JSON?

  10. 10

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  11. 11

    Comment obtenir tous les champs d'un objet (y compris sa superclasse), à l'aide de l'API Mirrors de Dart?

  12. 12

    Exécuter la requête externe pour chaque date obtenue à partir de la requête interne

  13. 13

    Recherche de dicton Jinja2 à l'aide d'une clé variable

  14. 14

    Laravel 8: Attempt to read property "id" on null

  15. 15

    définir une propriété pour chaque nœud dans neo4j

  16. 16

    Vérifier la longueur du nombre à partir du message, puis utiliser la valeur dans l'instruction

  17. 17

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  18. 18

    Aide de variable de débogage pprint jinja2

  19. 19

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  20. 20

    Impression de la longueur du chemin le plus court dans le labyrinthe

  21. 21

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

chaudétiquette

Archive