J’ai besoin de trouver tous les mots de la chaîne qui n’a que des majuscules et des traits de soulignement
ssortingng str = "ABCD_EFG_LMNO hello world PQR_ST_UVW US Apple PQR__ZYZ PQR__LMN__ZYZ"; ssortingng pattern = "[A-Z_]+[_][AZ]+";
Out mis devrait être seulement en dessous des mots
ABCD_EFG_LMNO PQR_ST_UVW
Lorsque vous utilisez des classes de caractères, l’ordre est ignoré. Utilisez des groupes à la place:
[AZ]+(?:_[AZ]+)+
regex101 démo
Est-ce ce dont vous avez besoin?
ssortingng strRegex = @"(? [AZ]+(?:_[AZ]+)+))"; Regex myRegex = new Regex(strRegex, RegexOptions.Multiline); ssortingng strTargetSsortingng = @"ABCD_EFG_LMNO hello world PQR_ST_UVW US Apple PQR__ZYZ PQR__LMN__ZYZ""" + "\n\n\n"; foreach (Match myMatch in myRegex.Matches(strTargetSsortingng)) { if (myMatch.Success) { // Add some displaying code } }
Astuce: utilisez RegExHero pour .NET pour essayer 🙂