Php 有人能帮我改变这个正则表达式吗?

Php 有人能帮我改变这个正则表达式吗?,php,regex,preg-replace,preg-match,Php,Regex,Preg Replace,Preg Match,我有一个正则表达式 /[^\w^\']+/i 下面是代码 preg_replace('/[^\w^\']+/i', ' ', $text) 我不擅长正则表达式。我知道的唯一一件事是,如果我在$text变量中尝试使用这个字符串 我试图在这里建立一个方程,即e=mc2 它从字符串中删除“=”。我想让它做它正在做的一切,但不要从字符串中删除“=”。你能帮我改变这个正则表达式吗 更新 我讨厌回答我自己的问题。但它可能会帮助其他人。但我让这个正则表达式起作用了。它适用于所有其他测试用例。 幸亏 /

我有一个正则表达式

/[^\w^\']+/i
下面是代码

preg_replace('/[^\w^\']+/i', ' ', $text)
我不擅长正则表达式。我知道的唯一一件事是,如果我在$text变量中尝试使用这个字符串

我试图在这里建立一个方程,即e=mc2

它从字符串中删除“=”。我想让它做它正在做的一切,但不要从字符串中删除“=”。你能帮我改变这个正则表达式吗

更新 我讨厌回答我自己的问题。但它可能会帮助其他人。但我让这个正则表达式起作用了。它适用于所有其他测试用例。 幸亏

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


如果希望它执行相同的操作,但不匹配
=
,则将
^=
添加到字符类中?请注意,它现在也有一个
g
,因为您似乎希望它是全局的。

请向我们展示如何使用正则表达式,并告诉我们您是要匹配还是替换。需要一个更完整的示例。上面的正则表达式匹配任何非单词或非反斜杠的内容。这意味着它将匹配=、空格等内容。A会很好。如果您不想更改字符串,为什么需要使用正则表达式作为开头?@Brett:不完全如此<代码>[^\w^\']匹配任何不是单词字符、插入符号或撇号的字符。第二个
^
被视为文字插入符号(可能是一个错误),第二个反斜杠用于转义撇号(因为他用它来分隔包含正则表达式的字符串文字)。谢谢,看起来它会起作用。您只需要一个插入符号:
[^\w\'=]
(请参阅我在问题下对Brett的评论)。PHP中不使用
g
标志
preg_replace()
是全局的,除非您用
limit
参数另外指定。
/[^\w,=^\']+/i