La construction de regex modèle pour correspondre à la phrase
Je suis en train d'écrire une regex modèle qui correspond à chaque phrase qui commence par plusieurs ou un seul onglet et/ou un espace.
Par exemple, je veux que ma regex modèle pour être en mesure de faire correspondre " bonjour j'aime les regex!"
mais je suis donc à me gratter la tête sur la façon de faire correspondre les mots après "bonjour". Pour l'instant j'ai ceci:
String REGEX = "(?s)(\\p{Blank}+)([a-z][ ])*";
Pattern PATTERN = Pattern.compile(REGEX);
Matcher m = PATTERN.matcher(" asdsada adf adfah.");
if (m.matches()) {
System.out.println("hurray!");
}
Toute aide serait appréciée. Merci.
Comment définissez-vous une phrase? C'est une chaîne de caractères se terminant par un signe de ponctuation, ou avez-vous une définition plus stricte?
Ma phrase doit commencer par un ou plusieurs espaces/tabulations. (les tabulations et les espaces peuvent être tassent avant tout non-blanc de la phrase de caractères s'affiche). Chaque mot après la première doivent être séparés par un espace. Et oui, la phrase doit se terminer par un signe de ponctuation.
Votre exemple de phrase n'est pas la fin d'une période.
^ merci de regarder la définition plus stricte que j'ai posée ci-dessus.
Ma phrase doit commencer par un ou plusieurs espaces/tabulations. (les tabulations et les espaces peuvent être tassent avant tout non-blanc de la phrase de caractères s'affiche). Chaque mot après la première doivent être séparés par un espace. Et oui, la phrase doit se terminer par un signe de ponctuation.
Votre exemple de phrase n'est pas la fin d'une période.
^ merci de regarder la définition plus stricte que j'ai posée ci-dessus.
OriginalL'auteur user1923 | 2013-12-02
Vous devez vous connecter pour publier un commentaire.
^
signifie "commence par"\\s
signifie que l'espace blanc+
signifie 1 ou plusieurs[A-Za-z,;'"\\s]
signifie n'importe quelle lettre,,
,;
,'
,"
, ou caractère d'espacement$
signifie "se termine par"fixe. Désolé, manqué de s'échapper
"
.Merci! Qui a résolu mon problème
Remarque: Cette expression n'est pas à l'échelle. Si vous avez senteces avec M. D. ou Mme Smith. Il ne fonctionnera pas.
Cette solution ne semble pas analyser cet exemple correctement: "j'ai la chance de rencontrer le Docteur House. Il était avec M. de la Maison."
OriginalL'auteur Steve P.
Un exemple regex pour correspondre à des peines par la définition: "Une phrase est une suite de caractères, en commençant par au moins un caractère d'espacement, qui se termine dans l'un des
.
,!
ou?
" est comme suit:Noter que les caractères de saut de ligne sera également inclus dans ce match.
.
dans les classes de personnage. Aussi, ce n'est pas une garantie rien sur l'endroit où ce modèle se produit dans la chaîne.Ce n'est pas une bonne définition. Que faire si nous avons un nombre décimal ou un nom initiale dans la phrase?
Vous avez raison, ce n'est pas la meilleure définition. Steve P définition est de meilleure qualité et donc sa réponse a été acceptée.
Mais où vous obtenez cette belle regExp de la visualisation?
href="https://www.debuggex.com/" >debuggex.com
OriginalL'auteur Taylor Hx
Si vous à la recherche pour correspondre à toutes les chaînes de caractères commençant par un espace blanc, vous pouvez essayer d'utiliser "^\s+*"
expression régulière.
Cet outil pourrait vous aider à tester votre expression régulière efficacement.
http://www.rubular.com/
OriginalL'auteur Ashish
Basés sur ce que vous désirez et vous a demandé, le travail.
Voir
travail démo
Il n'était pas incorrect, il y a juste ne semble pas être une utilisation pour elle. N'étais pas sûr si vous pensiez que c'était une optimisation ou de quelque chose. C'certains cas, à l'aide d'un atomiques groupe peut être une optimisation, mais pas dans ce cas (je pense).
OriginalL'auteur hwnd