我需要在Java中使用split()
方法拆分一行汇编代码。以下是示例代码:
String line = "Add a, b, c";
String[] parts = line.split("[\\s+,]");
System.out.println(Arrays.toString(parts));
输出:
[Add, a, , b, c]
我需要输出如下:
[Add, a, b, c]
以下任何输入:
String line = "Add a,b,c";
String line = "Add a ,b,c";
String line = "Add a, b,c";
String line = "Add a,b , c";
String line = "Add a , b , c";
或任何类似的案件。
使用什么样的正则表达式来代替[\\s+,]
?
答案 0 :(得分:3)
以下应该这样做:
String[] parts = line.split("[\\s,]+");
您当前的正则表达式只匹配一个空格,或者只匹配一个+
,或者只匹配一个逗号。
以上正则表达式匹配一个或多个空格和/或逗号。
不同之处在于+
的位置:当它出现在字符类中时,它会按字面解释。
答案 1 :(得分:2)
[\\s,]+
怎么样?它将匹配一次或多次出现的空格或逗号
答案 2 :(得分:0)
尝试以下方面:
添加?([0-9] +)?,?([0-9] +)?,?([0-9] +)?“
“[添加\ 1,\ 2,\ 3]”
([0-9] +)应该允许任意大小的数字
_?应为可选空间腾出空间
\ 1 应该反向引用第一组()
首先找到的值 \ 2 “”“”“”“”第二套()
\ 3 “”“”“”“”第三组()
逻辑是合理的,但要确保我的语法正确。