我有一个大文本文件。我试图找到所有短语(任何2个单词序列)。下面的正则表达式会起作用吗?
Pattern p = Pattern.compile("\w+\s{1}\w+");
我已经尝试过,但它没有用。
答案 0 :(得分:4)
答案 1 :(得分:0)
您的RegEx应该有效。这是Java中的示例实现:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String html = "ed ut perspiciatis, unde omnis iste natus error! sit 'voluptatem' " +
"accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo " +
"inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. " +
"Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, " +
"sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt." +
" Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, " +
"adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et " +
"dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis " +
"nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid " +
"ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea " +
"voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem " +
"eum fugiat quo voluptas nulla pariatur?";
Pattern p = Pattern.compile("\\w+\\s\\w+");
Matcher m = p.matcher(html);
while (m.find()) {
System.out.println(m.group());
}
}
}
给出(剪切)输出:
ed ut
unde omnis
iste natus
accusantium doloremque
totam rem
eaque ipsa
quae ab
illo inventore
veritatis et
quasi architecto
beatae vitae
dicta sunt
Nemo enim
ipsam voluptatem
quia voluptas
sit aspernatur
aut odit
aut fugit
...