我正在尝试在字符串中找到包含3个字母的所有单词 所以在这个列表中
cat monkey dog mouse
我只想要
cat dog
这是我的表达:
^[a-zA-Z]{3}$
我使用不同的在线正则表达式测试器进行了测试,但没有一个与我的表达相匹配。
答案 0 :(得分:12)
答案 1 :(得分:2)
如果您想匹配任何字符(也是数字),则可以使用.
代替[a-zA-Z]
:
\b.{3}\b
答案 2 :(得分:1)
要匹配字符串中包含3个字母的所有单词,模式需要 " \ b [a-zA-Z] {3} \ b"
下一步是编译你的模式。
Pattern pattern = Pattern.compile("\\b[a-zA-Z]{3}\\b");
使用匹配器并使用find()和group()方法打印事件
for (String word : sentence) {
Matcher matcher = pattern.matcher(word);
while(matcher.find()) {
System.out.println(matcher.group());
}
}
您的程序应该类似于 -
public static void main(String[] args) {
List<String> sentence = new ArrayList<String>();
sentence.add("cat");
sentence.add("monkey");
sentence.add("dog");
sentence.add("mouse");
Pattern pattern = Pattern.compile("\\b[a-zA-Z]{3}\\b");
for (String word : sentence) {
Matcher matcher = pattern.matcher(word);
while(matcher.find()) {
System.out.println(matcher.group());
}
}
}