目前我正在使用
$str = preg_replace("/\([^\)]+\)/", "", $str); // Remove () and Content
$str = preg_replace("/\[[^\)]+\]/", "", $str); // Remove [] and Content
$str = preg_replace("/\{[^\)]+\}/", "", $str); // Remove {} and Content
$str = preg_replace("/[^a-zA-Z0-9]/", "", $str); // Remove all non-alphanumeric characters
我想知道是否有办法将这些组合成一个正则表达式语句
答案 0 :(得分:5)
您可以使用|
组合这些:
(\([^\)]+\)|\[[^\]]+\]|\{[^\}]+\})|[^A-Za-z0-9])
但在你的情况下,我通常只是通过字符串并手动解析它
使用“状态变量”($paren_open
,$brace_open
,$curly_open
)来了解您是否忽略了字符。
即使它看起来不快(因为你必须经历每个角色),它比正则表达式要快得多,因为正则表达式会做一些更复杂的事情。
<强>资源:强>