可以使用正则表达式匹配逗号,但需要注意排除代码块中的逗号。
- 构造正则表达式,可以使用逗号作为分隔符,例如:
/[^
]+?(?<!),(?![^<]*</code>)/`。
- 解释正则表达式:
[^
]+?`:匹配除了反引号之外的任意字符,非贪婪模式。
(?<!<code>)
:否定预测先行断言,表示前面不能是<code>
。
,
:匹配逗号。
(?![^<]*</code>)
:否定预测后行断言,表示后面不能是</code>
。
- 使用正则表达式进行匹配,可以调用PHP的
preg_match_all()
函数,例如:$str = "这是一段文字,其中包含逗号,但不在<code>代码块</code>中。";
preg_match_all("/[^`]+?(?<!<code>),(?![^<]*</code>)/", $str, $matches);
print_r($matches[0]);
输出结果为:
Array
(
[0] => 这是一段文字,
[1] => 其中包含逗号,
[2] => 但不在<code>代码块</code>中。
)