我知道在正则表达式的匹配中有一个if / then,但在替换中是否有一个?
即。我想做一个正则表达式
“我有低于5美元出售的Foo酒吧”是“Foo Bars~ $ 5”
“我有Foo酒吧出售”成为“Foo Bars”而不是“Foo Bars~”
目前我的表达方式有点像这样:
preg_replace("/(([A-Z][a-z]*\s){1,3})((under .)\d+)?/","$1~$4",$str);
(当然还有其他位删除其他文本!) 但这包括〜即使其中没有“欠”。
我可能会使用preg_replace_callback,但这似乎有点OTT
感谢。
答案 0 :(得分:2)
Php的修剪功能可以:
// Before: "Foo Bars~$5"
$str = trim($str,'~');
// After: "Foo Bars~$5"
// Before: "Foo Bars~"
$str = trim($str,'~');
// After: "Foo Bars"