我试图使用正则表达式从字符串行捕获正确的单词(即不需要点,逗号,括号等...)。例如,如果输入行是:
So she was considering in her own mind (as well as she could),
我想捕获:
So
she
was
considering
in
....
有人知道这样做的方法吗?不幸的是,我是regex的新手:S
干杯!
答案 0 :(得分:2)
这是你需要的正则表达式:
\b[a-zA-Z]+\b
<强>解释强>
\b
是一个字边界,匹配一边是字母的位置,另一边不是字母(例如空格字符或字符串的开头)[a-zA-Z]
匹配范围a-z
和A-Z
+
量词表示我们必须匹配前一次或多次\b
边界确保我们的字完成。这两个边界共同确保我们有一个完整的词。在Java中
在评论中,您提到您要查看列表。你可以用这个:
List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("\\b[a-z]+\\b", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
matchList.add(regexMatcher.group());
}
请注意,我对模式不区分大小写。