我想知道用中的vid_id替换这个字符串的最佳正则表达式
$code = '<object width="420" height="345"><br />
<param name="movie" value="http://www.badoobook.com/clips/swf/player.swf"></param><br />
<param name="allowFullScreen" value="true"></param><param name="flashvars" value="vid_id=100226&MainURL=http%3A%2F%2Fwww.bado obook.com%2Fclips&em=1"><br />
<embed src="http://www.badoobook.com/clips/swf/player.swf" flashvars="vid_id=100226&MainURL=http%3A%2F%2Fwww. badoobook.com%2Fclips&em=1" type="application/x-shockwave-flash" allowScriptAccess="always" width="420" height="345" allowFullScreen="true"></embed></object>'
$regular = '';
$code = preg_replace($regular ,'$1' , $code);
echo $code;
该代码中的vid-id是
value=
"
vid_id=100226&
感谢您帮助
使用以下正则表达式:
vid_id=('d+)
您可以使用这样的Regex:
(?<=vid_id=)'d+
这使用了一个正向查找来匹配前面有文字字符集"vid_id="的任何数字
这里是再次与RegexBuddy评论:
@"
(?<= # Assert that the regex below can be matched, with the match ending at this position (positive lookbehind)
vid_id= # Match the characters “vid_id=” literally
)
'd # Match a single digit 0..9
+ # Between one and unlimited times, as many times as possible, giving back as needed (greedy)
"
你已经用php
和asp.net
标记了你的问题,所以我不确定你想要的是哪种实现。两者都有:
Asp.Net(C#)
Regex.Replace(@"...uot;vid_id=100226&...", @"(?<=vid_id=)'d+", "[Your value here]")
php
echo preg_replace("(?<=vid_id=)'d+", "[Your value here]", "...uot;vid_id=100226&...");