用逗号分割,后面不跟小写字母
Split with comma not followed with a lowercase letter
请帮我设计一下图案。我有带逗号的字符串,例如:
12v some, Item, which contains comma, Another item
我需要用逗号分隔得到:
0 => '12v some'
1 => 'Item, which contains comma'
2 => 'Another item'
如果逗号后有小写字母不拆分str,如何使用规则?
我正在使用 [\s,][ ][A-Z0-9]+,但它 trim 一些文本
您可以使用像
这样的基于前瞻的解决方案
preg_split('~\s*,(?!\s*\p{Ll})\s*~', $s)
详情
\s*
- 0+ 个空格
,
- 逗号
(?!\s*\p{Ll})
- 如果在当前位置的右侧有 0+ 个空格 (\s*
) 后跟一个 Unicode 小写字母 (\p{Ll}
)
\s*
- 0+ 个空格。
$s = "12v some, Item, which contains comma, Another item";
$res = preg_split('~\s*,(?!\s*\p{Ll})\s*~', $s);
print_r($res);
输出:
Array
(
[0] => 12v some
[1] => Item, which contains comma
[2] => Another item
)
请帮我设计一下图案。我有带逗号的字符串,例如:
12v some, Item, which contains comma, Another item
我需要用逗号分隔得到:
0 => '12v some'
1 => 'Item, which contains comma'
2 => 'Another item'
如果逗号后有小写字母不拆分str,如何使用规则?
我正在使用 [\s,][ ][A-Z0-9]+,但它 trim 一些文本
您可以使用像
这样的基于前瞻的解决方案preg_split('~\s*,(?!\s*\p{Ll})\s*~', $s)
详情
\s*
- 0+ 个空格,
- 逗号(?!\s*\p{Ll})
- 如果在当前位置的右侧有 0+ 个空格 (\s*
) 后跟一个 Unicode 小写字母 (\p{Ll}
)\s*
- 0+ 个空格。
$s = "12v some, Item, which contains comma, Another item";
$res = preg_split('~\s*,(?!\s*\p{Ll})\s*~', $s);
print_r($res);
输出:
Array
(
[0] => 12v some
[1] => Item, which contains comma
[2] => Another item
)