我正在编写一个代码,该代码将读取字符串,并且必须知道它是由字母组成还是标点符号。对于eq:(string指(和string为2个不同的实体。
我已经用
设置了定界符String DELIM = "[\\s\\-\\.\\'\\,\\?\\,\\_\\@\\#\\(\\)\\;]+";
,但是代码仍然将,*,/ 视为由字母组成的字符串,而不是标点符号。
我如何编辑我的Delim以能够更改它?
答案 0 :(得分:1)
在方括号[here]
内,您不必逃脱太多。
正则表达式[\\s-.'?,_@#();*\\/]+
完美地捕获了字符串中的任何定界符
aa bb-cc.dd'ee?ff,gg_hh@ii#jj(kk)ll;mm*nn/oo
。
这是Java代码段:
String regex = "[\\s-.'?,_@#();*\\/]+";
String text = "aa bb-cc.dd'ee?ff,gg_hh@ii#jj(kk)ll;mm*nn/oo";
String[] split = text.split(regex);
for (String s : split) {
System.out.println(s);
}
输出:
aa
bb
cc
...
您也可以使用regexp捕获其他不是后者或数字的内容:
[^a-zA-Z0-9]+
。