Java String类有一个matches(String regex)方法,用于检查当前字符串是否与给定的正则表达式匹配。但是,我们如何才能找到当前字符串的子字符串是否与正则表达式匹配?如何找出Java字符串的子字符串是否与正则表达式匹配?
我想模仿使用Java的grep的行为。 grep占据一行,并打印与行中任何位置的给定正则表达式匹配的所有行。我不知道如何用Java来做这件事,因为matches方法检查整行(即字符串)是否匹配正则表达式,而不是匹配正则表达式中的任何子字符串。
Java String类有一个matches(String regex)方法,用于检查当前字符串是否与给定的正则表达式匹配。但是,我们如何才能找到当前字符串的子字符串是否与正则表达式匹配?如何找出Java字符串的子字符串是否与正则表达式匹配?
我想模仿使用Java的grep的行为。 grep占据一行,并打印与行中任何位置的给定正则表达式匹配的所有行。我不知道如何用Java来做这件事,因为matches方法检查整行(即字符串)是否匹配正则表达式,而不是匹配正则表达式中的任何子字符串。
您可以修改正则表达式以允许在前端和字符串的后面通配符什么。
所以不是:
Pattern regex = Pattern.compile("hello\\sworld")
你有
Pattern regex = Pattern.compile(".*hello\\sworld.*);
请记住,至少第一个通配符需要您的代码不愿意工作。 – Charles 2012-04-17 20:45:44
将通配符放在正则表达式的两端解决您的问题? – 2012-04-17 20:39:29
哇@ColinD,这是一个很棒的建议!它一定会解决我的问题! – CodeBlue 2012-04-17 20:43:22