PHP регулярное выражение соответствует точному числу 10 в URL - PullRequest
0 голосов
/ 23 мая 2019

У меня есть URI как

myurl-c-10_550_05.html

Я бы хотел сопоставить любой URI, содержащий точное число 10 в любом месте, например:

myurl-c-10_550_05.html
myurl-c-550_10_05.html
myurl-c-550_05_10.html
myurl-c-550_10.html
myurl-c-10.html

, но не 100 или 1000, как

myurl-c-100_550_05.html  << Wrong

То, что я пробовал и работал для цифры 10, 100 или 1000:

preg_match("/-c-(?:[0-9_]+|)(10)(?:[0-9_]+|)/",$baseuri) 

Но я не могу получить фиксированную цифру 10 даже с этим другим регулярным выражением:

preg_match("/-c-(?:[0-9_]+|)(^10$)(?:[0-9_]+|)/",$baseuri) 

Я потратил почти 2 часа на переполнение стека, много читал, много пробовал с этим классным инструментом:

https://regexr.com/4eis5

отредактировано: это регулярное выражение также должно проверять наличие -c- в uri, за которым следуют несколько цифр и меньше или меньше и заканчивается точкой.

not working : myurl-i-10_gasp.html

Может кто-нибудь мне помочь? Спасибо!

Sebastien

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Попробуйте один из них:

"/-c-(\d+_)*10\D/"
"/-c-(\d+_)*10(?!\d)/"
0 голосов
/ 24 мая 2019

Решение с помощью Toto:

-c-(?:[0-9_]+|)(?<!\d)10(?!\d)

Вы можете увидеть это здесь: https://regexr.com/4eit3

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