【发布时间】:2014-08-12 21:43:14
【问题描述】:
我想使用 preg_replace() 删除括号及其内容,但我无法在模式中使用惰性(非贪婪),因为结束括号是结束字符,括号之间的文本总是随机字符长度,可以包含数字、下划线和连字符。
代码-
$array = array(
"Text i want to keep (txt to remove)",
"Random txt (some more random txt)",
"Keep this (remove)",
"I like bananas (txt)"
);
$pattern = "@pattern@";
foreach($array as $new_txt){
$new_outputs .= preg_replace($pattern, '', $new_txt)."\n";
}
echo $new_outputs;
想要的输出-
Text i want to keep
Random txt
Keep this
I like bananas
我很少使用正则表达式,也找不到任何东西可以解决我的问题。
【问题讨论】:
-
“无法在模式中使用惰性”是什么意思?
-
这就是我所说的不贪心的XD
-
所以你知道存在非贪婪的
*,就像我的回答一样。你为什么不认为你可以使用它? -
我确实尝试过使用它,但它从来没有像我尝试过的那样工作 -> @((.*?))@ 就像我说我不经常使用正则表达式
-
如果您希望特殊字符被逐字处理,您必须转义它们。
标签: php design-patterns preg-replace