Регулярное выражение не работает должным образом - PullRequest
0 голосов
/ 11 июня 2009

Как может получиться, что это регулярное выражение также возвращает строки, в которых последний символ символа подчеркивания _ стоит?

Он должен возвращать только строки с алфавитными символами, смешанными строчными и прописными буквами.

However, the regular expression returns: 'action_'

 $regEx = '/^([a-zA-Z])[a-zA-Z]*[\S]$|^([a-zA-Z])*[\S]$|^[a-zA-Z]*[\S]$/';

Ответы [ 4 ]

5 голосов
/ 11 июня 2009

Поскольку \ S означает "не пробельный символ", \ S соответствует _

Хотя у группы не должно быть подчеркивания, поэтому, если вы это имели в виду, возможно, вы вернули весь матч, а не только первую группу.

Пожалуйста, покажите, как вы используете регулярное выражение, чтобы уточнить это, если это необходимо.

2 голосов
/ 11 июня 2009

[\S] будет соответствовать всему, что не является пробелом, включая подчеркивание.


Кроме того, ваше выражение очень странно!

Если вам нужна строка, содержащая только буквы, используйте ^[a-zA-Z]*$ или ^[a-zA-Z]+$ (в зависимости от того, разрешен ли пробел или нет).

Если вы пытаетесь заняться чем-то другим, вам нужно будет подробно рассказать, что это такое.

0 голосов
/ 11 июня 2009

Вы должны показать текст и какую часть вы хотите извлечь из него. Регулярное выражение не должно быть таким большим, как у вас.

Работа с небольшими пакетами выражений ... При таком размере вам очень трудно помочь.

0 голосов
/ 11 июня 2009

\ S соответствует любому непробельному символу - таким образом _

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...