之间除了考虑以下字符串:过滤号码,当他们花括号
$text = "Dat foo 13.45 and $600 bar {70} and {8}";
我需要标注的所有号码在$文本,除非他们是花括号之间进行。我现在有这样的:
echo preg_replace("([0-9]+(?:\.[0-9]+)?)","{NUMBER:$0}",$tweet);
,其输出:
Dat foo {NUMBER:13.45} and ${NUMBER:600} bar {{NUMBER:70}} and {{NUMBER:8}}
然而,所期望的输出是:
Dat foo {NUMBER:13.45} and ${NUMBER:600} bar {70} and {8}
其中之间的数{和}被忽略。是否有可能扩大正则表达式来忽略大括号或是另一个需要的解决方案?
任何帮助,将不胜感激:-)
你可以通过接受答案来表达你的感激之情。还要考虑调查语法。这是你连续第四个plzsendtehregex问题;具体查找的语法已经向您解释过。 - SA:[开源RegexBuddy替代品](http://stackoverflow.com/questions/89718/is-there)和[在线正则表达式测试](http://stackoverflow.com/questions/32282/regex-testing)为工具,或[RegExp.info](http://regular-expressions.info/)为教程。 – mario 2012-02-10 21:41:52