Java String类有一个匹配(String regex)方法,用于检查当前字符串是否与给定的正则表达式匹配。但是,我们如何才能找到当前字符串的子字符串是否与正则表达式匹配?
我试图使用Java模仿grep的行为。 grep接受一行并打印与行中任何位置匹配给定正则表达式的所有行。我不确定如何使用Java,因为匹配方法检查整行(即字符串)是否匹配正则表达式而不是其中的任何子字符串。
答案 0 :(得分:6)
Matcher#find()
方法可以满足您的需求
答案 1 :(得分:2)
就像ColinD说的那样,你最好的选择是一次读一行你的字符串,然后用两端不情愿的通配符运行你的正则表达式。
答案 2 :(得分:1)
您可以修改正则表达式,以允许在字符串的前面和后面使用通配符。
所以而不是:
Pattern regex = Pattern.compile("hello\\sworld")
你有
Pattern regex = Pattern.compile(".*hello\\sworld.*);