2015-03-18 5 views
0

У меня есть регулярное выражениеPHP регулярное выражение исключить строку в URL

\(\'?.*(\/public\/images.*[^\'"])\'?\) 

Это соответствует ulrs в моем файле CSS. Вот примеры:

  1. фон: URL (/public/images/new_layout/bg-nav-active.png) не повторять 100% 100%;
  2. фон: URL (/public/images/new_layout/bg-nav-active.png?v=23423h423lj4h23l4jk23hl4jkh4h2kljh) не повторять 0 -

Но, как исключить параметр V из URL ? v = 23423h423lj4h23l4jk23hl4jkh4h2kljh

Благодарим за помощь.

+2

Что вы имеете в виду путем исключения? Вы имеете в виду второй случай, он не должен возвращаться в результате? – Rikesh

ответ

2

Что-то вроде этого должно быть достаточно;

\(\'?.*(\/public\/images[^\'"\?\)]+) 

https://regex101.com/r/eZ7iO9/1

Это будет соответствовать строке «/ общественные/изображения /» и все, что не в характере '"?)

1

Это регулярное выражение будет соответствовать только URL-адреса, без каких-либо скобок или ?v ы обусловленных просмотра назад и опережающий просмотр:

(?<!\()['"]?.*(\/public\/images[^'"\?\)]+) 

не-жадные .+? позволяет не соответствовать ?v s.

См example here.

Выход из ваших 2 входных строк является:

/public/images/new_layout/bg-nav-active.png 
/public/images/new_layout/bg-nav-active.png 
+0

Это может привести к закрытию кавычек. –

+0

Теперь он не будет захватывать закрывающие кавычки. –

+0

Да будет: https://regex101.com/r/oK1fP8/1 –

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