以逗号分隔,后面没有小写字母

时间:2018-09-17 09:14:23

标签: php regex preg-replace regex-lookarounds negative-lookahead

请帮我提供模式。我的字符串带有逗号,例如:

-Xmx___m

我需要将其用逗号分隔并得到:

12v some, Item, which contains comma, Another item

逗号不分割str后小写字母怎么用规则?

我正在使用[\ s,] [] [A-Z0-9] +,但会修剪一些文本

1 个答案:

答案 0 :(得分:2)

您可以使用基于前瞻性的解决方案,例如

preg_split('~\s*,(?!\s*\p{Ll})\s*~', $s)

请参见regex demo

详细信息

  • \s*-超过0个空格
  • ,-逗号
  • (?!\s*\p{Ll})-如果在当前位置的右侧紧邻有0+个空格(\s*)后跟Unicode小写字母({{1} })
  • \p{Ll}-超过0个空格。

PHP demo

\s*

输出:

$s = "12v some, Item, which contains comma, Another item";
$res = preg_split('~\s*,(?!\s*\p{Ll})\s*~', $s);
print_r($res);