Проверка правильности грамматики предложений с помощью регулярных выражений - PullRequest
1 голос
/ 23 октября 2011

Поэтому я хочу проверить строку на основе того, содержит ли она только грамматические символы, а также цифры и буквы (в основном, AZ, az, 0-9, плюс точки (.), Запятые (,) двоеточия (: ), точки с запятой (;), дефисы (-), одинарные кавычки ('), двойные кавычки (") и круглые скобки (). Я получаю сообщение об ошибке PHP, в котором говорится" Ошибка компиляции: диапазон не соответствует порядку в символьных классах ". Что код регулярного выражения, который я должен использовать?

Это то, что я сейчас использую: ^[a-zA-Z0-9_:;-()'\" ]*^

Ответы [ 2 ]

2 голосов
/ 23 октября 2011

Проблема в том, что у вас есть символ тире в регулярном выражении, который анализатор интерпретирует как диапазон, а не буквальный тире.Вы можете исправить это:конец (^[a-zA-Z0-9_:;()'\" -]*^)

2 голосов
/ 23 октября 2011

Вам нужно сбежать -, который затем стал бы этим ^[a-zA-Z0-9_:;\-()'\" ]*.- имеет особое значение внутри набора символов, поэтому его необходимо экранировать.^ в конце тоже не нужно.Можно также упростить регулярное выражение, используя \w, например:

^[\w:;()'"\s-]*

\w соответствует буквам, цифрам и подчеркиванию.

...