PHP:替换所有“文件”;"富",;字符串介于“之间”;风格=';()'&引用;使用正则表达式
可能重复:PHP:替换所有“文件”;"富",;字符串介于“之间”;风格=';()'&引用;使用正则表达式,php,regex,preg-replace,Php,Regex,Preg Replace,可能重复: 你好, 我试图使用regex替换()之间的所有foo字符串,而style=“和” 下面是一个例子: blah blah foo blah style="foo text blah (foo and blah foo)" 应将其替换为: blah blah foo blah style="foo text blah (bar and blah bar)" 我试图使用这个代码,但它不工作 do { $code = preg_replace('/(style\=\"[^)]*)l
你好, 我试图使用regex替换
()
之间的所有foo
字符串,而style=“和”
下面是一个例子:
blah blah foo blah style="foo text blah (foo and blah foo)"
应将其替换为:
blah blah foo blah style="foo text blah (bar and blah bar)"
我试图使用这个代码,但它不工作
do {
$code = preg_replace('/(style\=\"[^)]*)left(?=[^()]*\))([^)]*\")/U', '\1tempvalue\3', $code, -1, $count);
} while($count != 0);
然后我尝试使用foreach获得结果,然后使用preg\u replace正常替换它
我希望找到答案:),,谢谢。适用于您的字符串,可能需要修改一点才能在所有情况下工作
echo preg_replace_callback('/style="(.*)(\(.+\))"/',create_function(
'$matches',
'return "style=\"" . $matches[1] . preg_replace("/foo/","bar",$matches[2]) . "\"";'
),'blah blah foo blah style="foo text blah (foo and blah foo)"');
适用于字符串,可能需要修改一点才能在所有情况下工作
echo preg_replace_callback('/style="(.*)(\(.+\))"/',create_function(
'$matches',
'return "style=\"" . $matches[1] . preg_replace("/foo/","bar",$matches[2]) . "\"";'
),'blah blah foo blah style="foo text blah (foo and blah foo)"');
使用以下正则表达式:
/style=".*?\((.*?)\)"/
说明:
“匹配相同的内容style=
匹配任何字符,但不要以贪婪的方式,尽可能少地匹配*?
匹配(\(
匹配样式和括号之间的任何字符,这意味着这是您应该替换的信息(.*)
匹配项)”\)“
您可以使用该工具构建正则表达式字符串。它非常有用,它有一些示例,可以告诉您哪些部分与哪个字符串匹配。使用以下正则表达式:
/style=".*?\((.*?)\)"/
说明:
“匹配相同的内容style=
匹配任何字符,但不要以贪婪的方式,尽可能少地匹配*?
匹配(\(
匹配样式和括号之间的任何字符,这意味着这是您应该替换的信息(.*)
匹配项)”\)“
style="[^(]*\(([^)]*)\)"
但是,由于您将有多个匹配项(0表示整个匹配项,1表示括号中的值),因此必须使用工作正则表达式:
style="[^(]*\(([^)]*)\)"
但是,由于您将有多个匹配项(0表示整个匹配项,1表示括号中的值),因此必须使用这可能是
PREG\u REPLACE\u EVAL的一个很好的用法:
输出
这可能是PREG\u REPLACE\u EVAL
的一个很好的用法:
输出
不是一个好的做法;顺便说一句,您是否需要thid:使用preg\u replace\u callback
查找style=“.*”
,然后使用第二个正则表达式来调整括号中的搜索文本。哦,看起来您以前得到过这样的建议:这不是一个好做法;顺便说一句,您是否需要thid:使用preg\u replace\u callback
查找style=“.*”
,然后使用第二个正则表达式来调整括号中的搜索文本。哦,看起来您以前得到过该建议: