我必须在<something:any-char>
内替换URL
等模式的匹配项。
例如,像URL
这样:
http://some-site.com/some-acion/pippo:1/mypar:asdasd/pippo2:sdd/ .....
应该成为:
http://some-site.com/some-acion/pippo:1/pippo2:sdd/ .....
换句话说,我必须从网址中筛选出mypar:
的任何内容。
我将使用PHP。
我尝试使用RegExp:
.*[\/]+(sh:.*)[\/]?.*$
但它只匹配/pippo:3/mypar:wdfds
之类的字符串。像/pippo:2/mypar:asa/7pippo:1/
这样的字符串不匹配。
任何提示都表示赞赏。
答案 0 :(得分:1)
你可以这样做:
$url = "/pippo:2/mypar:asa/7pippo:1/";
$stripped = preg_replace("/\/mypar:.*?(\/|$)/", "$1", $url);
答案 1 :(得分:0)
惰性点匹配.*?
与正向前瞻(?=/|$)
(/
或字符串结尾)的组合可以替换为仅仅任意0+除了/
以外的字符[^/]*
:
'~/mypar:[^/]*~'
~
分隔符可以在模式中使用/
而无需转义。
模式详细信息:
/
- 正斜杠mypar:
- 一系列文字字符[^/]*
- 除/
字符请参阅regex demo:
$re = '~/mypar:[^/]*~';
$str = "/pippo:2/mypar:asa/7pippo:1/";
$result = preg_replace($re, '', $str, 1);
echo $result;