我有一个要根据字符进行标记的字符串,
。这里的问题是字符串是这样的
-123 abc, 234 def (2,3,4), -456 zyx (4,5,6) and xyz (6,5,4), 789 final!
标记化输出后应该看起来像......
-123 abc
234 def (2,3,4)
-456 zyx (4,5,6) and xyz (6,5,4)
789 final!
如何为此编写正则表达式?TIA。
另一种方法是使用
Pattern p = Pattern.compile(", +");
for(String my : p.split("-123 abc, 234 def (2,3,4), -456 zyx (4,5,6) and xyz (6,5,4), 789 final!"))
System.out.println(my);
这将找到任何带有前导空格(一个或多个)的逗号。
您可以通过“,”尝试不带数字的模式匹配:
Pattern pattern = Pattern.compile("^[\\d][,]^[\\d]");
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
//Here you know where you have the separating ,
start = matcher.start();
或者如何通过“,”进行标记?希望后面总有一个空格,你要标记化。
String test = "-123 abc, 234 def (2,3,4), -456 zyx (4,5,6) and xyz (6,5,4), 789 final!";
String[] tokens = test.split(", ");
System.out.println(Arrays.toString(tokens));
它可能就像这样工作:
var string = "-123 abc, 234 def (2,3,4), -456 zyx (4,5,6) and xyz (6,5,4), 789 final!";
var tokens = string.split(', '); console.log(tokens);</p>
演示:http: //jsfiddle.net/HQgV8/