Php 正则表达式。。。“如何支持某些文本”'&引用;但不是另一个。。。(菲律宾)
我有以下案文:Php 正则表达式。。。“如何支持某些文本”'&引用;但不是另一个。。。(菲律宾),php,regex,Php,Regex,我有以下案文: $txt1 = "aaa'bbb'ccc'ddd''eee'fff"; 我想保留这一点: "aaacccfff" 但当我使用它时: $txt2 = preg_replace ( #\'.+\'# , "" , $txt1); 我得到了萨卡 $txt2 == "aaafff" (我在Batle中丢失了“ccc”) 感谢您的帮助您可以使用str\u替换 $txt1 = "aaa'bbb'ccc'ddd''eee'fff"; $txt = str_replace("'",
$txt1 = "aaa'bbb'ccc'ddd''eee'fff";
我想保留这一点:
"aaacccfff"
但当我使用它时:
$txt2 = preg_replace ( #\'.+\'# , "" , $txt1);
我得到了萨卡
$txt2 == "aaafff"
(我在Batle中丢失了“ccc”)
感谢您的帮助您可以使用
str\u替换
$txt1 = "aaa'bbb'ccc'ddd''eee'fff";
$txt = str_replace("'", "", $txt1);
echo $txt;
这就是您需要在单引号之间替换字符的地方。演示 这里,
”
按字面意思匹配字符”
[^']
匹配单个字符,但不匹配”
+
量词-一次和无限次之间的匹配
”
按字面意思匹配字符”
因此,使用上面的正则表达式,您只需匹配模式,并最终将单引号(')中的字符替换为'
默认情况下,正则表达式是贪婪的,这意味着它们匹配最长的匹配。 您的正则表达式匹配
'bbb'ccc'ddd''eee'
,并将其替换为零
在您的情况下,您必须使用惰性变量,使用?
运算符来获得最短的可能匹配,例如
$txt2 = preg_replace ( '/\'.+?\'/' , "" , $txt1);
实例:
对于贪婪/懒惰的正则表达式,请参见例如在这种情况下,首先测试正则表达式所涵盖的内容会有所帮助。(=太贪婪了)
preg\u replace
使用很棒的工具!!!谢谢:-我怎样才能表明这个问题已经解决了?是的。。。但是@ctwheels没有回答,他对我的问题做了评论。。。我记不清我的问题了!m
修饰符在这里的作用是什么?不管怎样,你只需要。不需要m
修饰符。犯了愚蠢的错误。谢谢你给我指出投票失败的原因
aaacccfff
$txt2 = preg_replace ( '/\'.+?\'/' , "" , $txt1);