2012-10-11 77 views
0

我有这样的正则表达式有人可以帮我改变这个正则表达式吗?

/[^\w^\']+/i 

这里是代码为它。

preg_replace('/[^\w^\']+/i', ' ', $text) 

我不擅长正则表达式。只有我知道的是,如果我用$ string文本变量中的这个字符串尝试它。

我想在这里做一个方程是E = mc2的

它删除 “=” 从字符串。我希望它做它正在做的所有事情,但不要从字符串中删除“=”。你能帮我改变这个正则表达式吗?

更新 我讨厌回答我自己的问题。但它可能会帮助别人。但是我得到了这个正则表达式的工作。哪个适用于所有其他测试用例。 由于 http://rick.measham.id.au/paste/explain.pl

/[^\w,=^\']+/i 
+0

请向我们展示如何使用正则表达式,并告诉我们您是要匹配还是替换。 –

+3

一个更完整的例子是必要的。上面的正则表达式匹配**不是一个单词**或不是**反斜杠**。这意味着它将匹配= =,空格等? – Brett

+0

你的正则表达式基本上是否定字符类。请阅读http://www.regular-expressions.info/charclass.html以了解如何适应它。 – mario

回答

0

http://refiddle.com/9w1

/[^\w^\'^=]+/ig

如果你想要它做虽然同样动作,除了不匹配=,再加入^=到字符类?请注意,它现在也有g,因为您似乎希望它是全球性的。

+0

谢谢,好像它会工作。 –

+1

你只需要一个脱字号:'[^ \ w \'=]'(请参阅我在Brett的问题下的评论)。而'g'标志不在PHP中使用; 'preg_replace()'是全局的,除非你用'limit'参数指定。 –

0

如果你解释你想完成什么,这可能会有帮助吗?

顺便说一句,我是可怕的正则表达式用,并且发现这个工具非常有用:

Regex Buddy

只要记住,PHP喜欢包裹在斜线其正则表达式,所以你需要添加那些在正则表达式出现之后。

+0

RegexBuddy *很棒,但这不是一个答案。它应该作为评论发布,如果有的话。 –

相关问题