我正在写一个hashTable程序。我只需要散列单词或单个字符的值。我将单词定义为没有空格或标点符号的任何字符,并且字符是任何字母(a-z)或(0-9)。这意味着没有空格,换行符,缩进等。我也将所有被散列为小写的文本。我正在使用string.split方法,尽管正确的正则表达式是什么?我读过一些网站,但仍然感到困惑。
-谢谢
最佳答案
请尝试以下操作,因为您似乎正在尝试完成此操作。
String s = "bensherms_!' bensherms?_ bensherms;$#!bensherms";
String[] parts = s.split("(?<!\\W)[\\W_]+");
System.out.println(Arrays.toString(parts));
见
live demo
输出量
[bensherms, bensherms, bensherms, bensherms]
正则表达式:
(?<! look behind to see if there is not:
\W any character of: non-word characters
(all but a-z, A-Z, 0-9, _)
) end of look-behind
[\W_]+ any character of: non-word characters
(all but a-z, A-Z, 0-9, _), '_' (1 or more times)
关于java - Java正则表达式,除字母字符/字符串外的所有内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20025487/