Ce \ [(. *?) \] obtient une chaîne entre [ et ] . Maintenant, je veux obtenir une chaîne entre un mot et un autre. J'ai essayé \ wword1 (. *?) \ Wword2 , sans succès. Aidez-moi, qu'est-ce que je fais de mal?
Exemple de chaîne:
Le mot1 du moteur a réussi le mot2 correspondant au mot est dans notre string, en sautant les deux occurrences précédentes des caractères i et s. Si nous avions utilisé l'expression régulière is, elle aurait correspondu à la est dans This.
Exemple de sortie: a réussi
4 Réponses :
Vous pouvez le faire de cette façon -
word1 (.*?) word2
OU
Votre chemin après avoir supprimé le \ w inutile avant et après
word1 ([a-zA-Z\s]+) word2
Lorsque vous ajoutez \ w au modèle, il correspondra à un caractère de mot et il est attendu.
Ce que vous pouvez faire est de le supprimer et de faire correspondre 1+ fois un caractère d'espacement après le premier mot et avant le deuxième mot.
Ensuite, votre correspondance dans le premier groupe de capture:
\bword1\s+(.*?)\s+word2\b
\ b Limite de mot mot1 Correspondre littéralement \ s + Correspond à 1+ fois un caractère d'espacement (. *?) Capturer dans un groupe tout caractère 0+ fois non gourmand \ s + Correspond à 1+ fois un caractère d'espacement mot2 Correspond littéralement \ b Limite de mot
ce
[(.?)]obtient une chaîne entre[et].Non, non, il devrait être
\ [[^ \]] * \]pour obtenir n'importe quelle chaîne entre [et]La solution est: p>
\bword1\b(.*?)\bword2\b
\ west un caractère de mot[A-Za-z) -9]et bien d'autres.\ best une limite de mot, ce que vous recherchez. Cela pourrait même être\bword1(.*?)\bword2
Merci Lonely Neuron
Essayez ceci:
(?<=word1)(stringbetween)(?=word2)
Cela ne répond pas à la question. Une fois que vous aurez une réputation suffisante, vous pourrez commenter n'importe quel message ; à la place, fournit des réponses qui ne nécessitent pas de clarification du demandeur . - De l'avis
@lelloman Je ne vois pas le problème. Je pense que cela répond à la question.
Cette réponse avait été signalée comme étant de mauvaise qualité et mon commentaire était un modèle généré par l'examen. Je pense toujours que cela pourrait être amélioré avec une explication, "essayez ceci" oui, mais pourquoi est-ce la solution au problème?
@lelloman Je suis d'accord avec vous que certaines explications amélioreraient cette réponse. C'est une solution puisque OP a écrit "Je ne veux pas que mot1 et mot2 soient inclus dans la nouvelle chaîne" et ressemble à (? <=) et (? =) assurez-vous que les choses sont là sans les inclure dans le match.
Supprimez le
\ wet vous êtes prêt à partir.P.S. Je ne veux pas que mot1 et mot2 soient inclus dans la nouvelle chaîne