我有一个字符串。我想把字符串分割成不均匀的白色空格。如果空格大于或等于2个空格的长度比我希望它们在单独的数组项中,但如果只有一个空格,那么我希望它们在同一个数组项中,以便例如。
我有这个字符串
1234 This is a Test PASS 1255432 12/21/2016 07:14:11
所以当我拆分上面的字符串时,它应该是这样的
arr(0) = 1234
arr(1) = This is a test ' because it has only one space in between, it there are more or equal to two spaces than I want it to be a seperate item in an array
arr(2) = Pass
arr(3) = 1255432
arr(4) = 12/21/2016
arr(5) = 07:14:1
以下字符串相同:
0001 This is a Marketing text_for the students TEST2 468899 12/23/2016 06:23:16
当我拆分上面的字符串时,它应该是这样的:
arr(0)=0001
arr(1) = This is a Marketing text_for the students
arr(2) = Test2
arr(3)=468899
arr(4)=12/23/2016
arr(5) = 06:23:16
是否有任何正则表达式可以帮助我根据空格拆分字符串,但如果空格大于或等于2则将这些字放在一起。
非常感谢任何帮助。
答案 0 :(得分:0)
这可以通过这个正则表达式(\ s {0,1} \ S +)+完成,如下所示:
string text = "0001 This is a Marketing text_for the students TEST2 468899 12/23/2016 06:23:16";
Regex regex = new Regex(@"(\s{0,1}\S+)+");
var matches = regex.Matches("0001 This is a Marketing text_for the students TEST2 468899 12/23/2016 06:23:16").Cast<Match>()
.Select(m => m.Value)
.ToArray();
Console.WriteLine(String.Join( ",", matches));
这是一个有效的java脚本片段。
var value = "0001 This is a Marketing text_for the students TEST2 468899 12/23/2016 06:23:16";
var matches = value.match(
new RegExp("(\\s{0,1}\\S+)+", "gi")
);
console.log(matches)
这个正则表达式(\s{0,1}\S+)+
的工作原理是在每次匹配的乞讨时用\ s {0,1}匹配0或1个空格,然后任何数量的不是空格的东西用\ S +然后匹配这个通过将它包含在括号中并使用+运算符(...)+,可以将整个事物任意多次,这允许将单个空格字符组合在一起。