如何确定Java字符串的子字符串是否与正则表达式匹配?

时间:2012-04-17 20:34:36

标签: java grep

Java String类有一个匹配(String regex)方法,用于检查当前字符串是否与给定的正则表达式匹配。但是,我们如何才能找到当前字符串的子字符串是否与正则表达式匹配?

我试图使用Java模仿grep的行为。 grep接受一行并打印与行中任何位置匹配给定正则表达式的所有行。我不确定如何使用Java,因为匹配方法检查整行(即字符串)是否匹配正则表达式而不是其中的任何子字符串。

3 个答案:

答案 0 :(得分:6)

Matcher#find()方法可以满足您的需求

答案 1 :(得分:2)

就像ColinD说的那样,你最好的选择是一次读一行你的字符串,然后用两端不情愿的通配符运行你的正则表达式。

答案 2 :(得分:1)

您可以修改正则表达式,以允许在字符串的前面和后面使用通配符。

所以而不是:

Pattern regex = Pattern.compile("hello\\sworld")

你有

Pattern regex = Pattern.compile(".*hello\\sworld.*);