需要帮助。
line.split("*");
我使用这行代码将一个字符串按照星号分割。但是,我的编译器报错了,显示"INVALID REGULAR EXPRESSION: DANGLING META CHARACTER '*'"
如何解决这个问题?先谢谢。
*
在正则表达式中有特殊含义,必须进行转义。
line.split("\\*");
line.split("\\*");
*
具有特殊含义,即零次或多次。
贪婪模式 | 懒惰模式 | 占有模式 | 含义 |
---|---|---|---|
X? | X?? | X?+ | X,零次或一次 |
X* | X*? | X*+ | X,零次或多次 |
X+ | X+? | X++ | X,至少一次 |
X{n} | X{n}? | X{n}+ | X,恰好 n 次 |
X{n,} | X{n,}? | X{n,}+ | X,至少 n 次 |
X{n,m} | X{n,m}? | X{n,m}+ | X,至少 n 次但不超过 m 次 |
\
转义它。但是,\
也是一个特殊字符,因此您需要再添加一个\
来转义\
。因此,所需的模式变为\\*
。String[] arr = line.split("\\*");
System.out.println(java.util.Arrays.toString(arr));
[*]
。字符*
在用作字符类时不需要转义。String[] arr = line.split("[*]");
System.out.println(java.util.Arrays.toString(arr));
试试这个语句:
line.split("\\*");
* 是正则表达式中的元字符。它用于匹配 0 或多个元素。如果您想将 * 作为普通字符使用而不是特殊字符(即跳过其作为元字符的行为),则需要在其前面添加转义字符。
例如:String[] split = line.split("\\*");
希望这可以帮助您。