php正则表达式排除网址中的字符串

时间:2015-03-18 10:51:07

标签: php css regex

我有一个正则表达式

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

它匹配我的CSS文件中的ulrs。 以下是示例:

  1. background:url( /public/images/new_layout/bg-nav-active.png )no-repeat 100%100%;
  2. background:url( /public/images/new_layout/bg-nav-active.png?v=23423h423lj4h23l4jk23hl4jkh4h2kljh )no-repeat 0 -
  3. 但是,如何从URL 中排除参数v?v = 23423h423lj4h23l4jk23hl4jkh4h2kljh

    感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

这样的事情应该足够了;

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

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

这将匹配字符串" / public / images /"以及角色'"?)

中的所有内容

答案 1 :(得分:1)

这个正则表达式只匹配网址,没有任何括号或?v,因为有一个后视和前瞻:

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

非贪婪.+?可以不匹配?v

请参阅example here

2个输入字符串的输出为:

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

答案 2 :(得分:-2)

str_replace('v=', '', $string)