我有一个字符串
"foo:bar rty:qwe magic qwe"
我需要把它分成["foo:bar", "rty:qwe magic qwe"]
我的问题是右边可能有很多用空格分隔的单词(在“:”之后)
无法想象这样的正则表达式......有人可以帮忙吗?
我有一个字符串
"foo:bar rty:qwe magic qwe"
我需要把它分成["foo:bar", "rty:qwe magic qwe"]
我的问题是右边可能有很多用空格分隔的单词(在“:”之后)
无法想象这样的正则表达式......有人可以帮忙吗?
我只是在下一个键之前使用前瞻进行拆分。作为 Perl 代码:
say qq/"$_"/ for split /\s+(?=\w+:)/, "foo:bar rty:qwe magic qwe baz:qux";
输出:
"foo:bar"
"rty:qwe magic qwe"
"baz:qux"
与其他通过限制结果片段数量来解决问题的答案不同(我也可以这样做:)split " ", $string, 2
,这适用于任意数量的key: value value
序列。
在 Python 中,不需要使用正则表达式。只是split
。
>>> "foo:bar rty:qwe magic qwe".split(None, 1)
['foo:bar', 'rty:qwe magic qwe']
>>>
不确定我是否正确理解了您的问题,但这对于您给定的示例应该是正确的。解决方案是在 Java 中:
String str = "foo:bar rty:qwe magic qwe";
String[] arr = str.split(" ", 2);
System.out.println(Arrays.toString(arr));
印刷
[foo:bar, rty:qwe magic qwe]
在 Perl 中,您可以使用该split()
函数并指定一个限制:
$s = "foo:bar rty:qwe magic qwe";
@result = split(' ',$s,2);