2015-07-15 2 views
0

Я не могу заставить это регулярное выражение работать с PHP, в частности, пробелом посередине, индивидуально будет соответствовать группа значений или единиц.regex разница с php whitespace

регулярное выражение:

/(?<value>\d+\.?\d*)(\p{Z}|\s)(?<unit>(meters|mm))/ 

строка для разбора:

Cord Length:1.52 meters 

попробовать на http://www.phpliveregex.com/ он не совпадает.

http://www.phpliveregex.com/p/bV7

попробовать на https://regex101.com/ он работает отлично

EDIT: еще, кажется, не будет работать на phpliveregex.com для меня

http://www.phpliveregex.com/p/bV7

EDIT2: Я редактировал строка для разбора.

+0

это хорошо работает на phpliveregex тоже: http://www.phpliveregex.com/p/bV5 –

+0

phpliveregex нормально работал но вам нужно удалить разделители (он добавляет их, поэтому, оставляя их, вы получаете дубликаты). Это то, что regex101 делает автоматически при вставке. –

+0

все еще, кажется, не работает для меня, см. Редактирование и ссылка в OP –

ответ

3

Помимо вышеуказанных замечаний, я хотел бы изменить регулярное выражение следующим образом:

(?<value>\d+(?:\.\d+)?)\h+(?<unit>(?:meters|mm)) 
+0

все еще не работает для меня, см. Редактирование и ссылку в OP –

+0

Он отлично работает http: //www.phpliveregex. com/p/bV9 – hwnd

+0

Нажмите ссылку в исходном сообщении. У него есть другой код символа для пробела –

Смежные вопросы