您好我想在以下行中匹配“@”,
create@create_time:"2012-05-30 21:14:35.0",update_time:"2012-05-31 22:05:46.0"
preg_replace("@", "", $content)
preg_replace("\@", "", $content)
他们都没有工作。
答案 0 :(得分:4)
对于子孙后代:如果有人因为在正则表达式中使用at-signs而感到困惑,因为正则表达式是其他人代码的一部分,@
偶尔会被用作开头和结尾regex-delimiter }。以下引用还涉及为什么OP尝试匹配文字“@”不成功(强调我的):
使用PCRE功能时, 必需 模式由分隔符包围。分隔符可以是任何非字母数字,非反斜杠,非空白字符。
换句话说,任何正则表达式字符串必须以字符类[^A-Za-z\s\\]
标识的匹配字符开头和结尾,或者 - 如果您觉得可以处理任何字符令他们头疼的问题可能会导致你 - 一对匹配的分组字符<>
{}
[]
()
。
答案 1 :(得分:1)
如果您阅读了错误消息,则表明您的正则表达式缺少分隔符。
正确的是~@~
但是,在这种情况下你不需要preg_replace
,你应该使用
str_replace("@", "", $content)