Disons qu'il ya six cordesdébut de match de C# RegEx de ficelle et début de mot en même temps
- "ABCD bbb ccc"
- "abce bbb ccc"
"abcf bbb ccc"
"aaa abcd ccc"
- "aaa abce ccc"
- "aaa abcf ccc"
L'utilisateur saisit l'expression "<abc[!e]
"
Cette expression se traduit en suivant regex "^ abc [^ e]"
regex Traduit sélectionnne avec succès des chaînes 1 et 3
Si je voulant faire correspondre les chaînes 4 et 6, l'expression doit être traduite en "\ Wabc [^ e]" (ceci correspondrait également à l'espace avant abc chars :(, ce qui n'est pas bon)
Malheureux L'expression entrée par l'utilisateur doit être convertie en regex qui correspondrait à la fois aux chaînes 1,3 et 4,6.
Y at-il moyen de traduire l'utilisateur est entré dans l'expression regex qui combinerait "^ abc [^ e]" et "\ WABC [^ e]" expressions (idéalement seconde expression ne correspondrait pas à la première place :))
Avez-vous essayé: "(^ abc [^ e] | \ Wabc [^ e])"? Ou peut-être juste "(^ | \ W) abc [^ e]"? (puisque je ne l'ai pas essayé, j'utilise le commentaire au lieu de la réponse) –
Je suppose qu'il ne devrait pas non plus correspondre 'aaaabcd' –
lassevk cela a rendu ma vie un peu plus facile :). Si je pouvais seulement faire \ W ne pas commencer à faire correspondre avec l'espace, à l'instant il correspond à "abcd" –