несоответствие php preg_match - PullRequest
0 голосов
/ 13 мая 2018

Я хотел бы знать, почему preg_match('/(?<=\s)[^,]+(?=\s)/',$data,$matches); соответствует «Список процессов 8989» в строке «20180513 Список процессов 8989». Используемое мной регулярное выражение не должно совпадать с числовыми символами. Что не так?

1 Ответ

0 голосов
/ 14 мая 2018

[^,] в основном означает любой символ , за исключением ,. Если вы также хотите исключить числовые символы, вы можете заменить его на [^,0-9] или лучше [^,\d], чтобы ваше регулярное выражение выглядело так:

(?<=\s)[^,\d]+(?=\s)

Попробуйте онлайн .

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


Ссылки:

...