Php предположение в конце регулярного выражения

Я хочу написать регулярное выражение с утверждениями, чтобы извлечь число 55 из строки unknownstring/55.1вот мое регулярное выражение

    $str = 'unknownstring/55.1';
preg_match('/(?<=\/)\d+(?=\.1)$/', $str, $match);

так что, в основном, я пытаюсь сказать, дайте мне число, которое идет после косой черты, за которым следуют точка и число 1, и после этого нет никаких символов. Но это не соответствует регулярному выражению. Я просто пытался удалить $ знак с конца, и это соответствует. Но это условие необходимо, так как мне нужно, чтобы он был концом строки, потому что unknownstring часть может содержать аналогичный текст, например unknow/545.1nstring/55.1, Возможно, я могу использовать preg_match_all и взять последнее совпадение, но я хочу понять, почему первое регулярное выражение не работает, где моя ошибка.

Спасибо

5

Решение

Используйте якорь $ внутри взгляд:

(?<=\/)\d+(?=\.1$)

RegEx Demo

Вы не можете использовать $ за пределами положительного взгляда, потому что ваш номер не в конце ввода, и есть \.1 следуя за этим.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]