Java 试着理解单词边界
我正在学习正则表达式和更具体的单词边界。我有一段代码,我觉得应该至少返回一个匹配项,但是它没有 我使用的代码有什么问题Java 试着理解单词边界,java,regex,Java,Regex,我正在学习正则表达式和更具体的单词边界。我有一段代码,我觉得应该至少返回一个匹配项,但是它没有 我使用的代码有什么问题 public static void main(String[] args) { boolean matches; String [] various = {"Men of honour", "X Men", "Children of men", "Company men are great"}; for(int i = 0; i < var
public static void main(String[] args)
{
boolean matches;
String [] various = {"Men of honour", "X Men", "Children of men", "Company men are great"};
for(int i = 0; i < various.length; i++)
{
matches = Pattern.matches("\\bMen", various[i]);
System.out.println("Does the string match the pattern? " + matches);
}
}
这不是因为单词的边界。这是因为
.matches()
方法需要匹配整个字符串。它无法提取子匹配
你想要什么
Pattern regex = Pattern.compile("\\bMen", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
for(int i = 0; i < various.length; i++)
{
Matcher regexMatcher = regex.matcher(various[i]);
matches = regexMatcher.find();
System.out.println("Does the string match the pattern? " + matches);
}
Pattern regex=Pattern.compile(“\\bMen”,Pattern.CASE不区分大小写| Pattern.UNICODE_CASE);
for(int i=0;i
这不是因为单词的边界。这是因为.matches()
方法需要匹配整个字符串。它无法提取子匹配
你想要什么
Pattern regex = Pattern.compile("\\bMen", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
for(int i = 0; i < various.length; i++)
{
Matcher regexMatcher = regex.matcher(various[i]);
matches = regexMatcher.find();
System.out.println("Does the string match the pattern? " + matches);
}
Pattern regex=Pattern.compile(“\\bMen”,Pattern.CASE不区分大小写| Pattern.UNICODE_CASE);
for(int i=0;i
当您使用.matches()
时,您会询问正则表达式引擎您的模式是否匹配整个输入字符串。但是,您想知道您的模式是否可以在输入字符串中找到
使用:
当您使用
.matches()
时,您会询问正则表达式引擎您的模式是否匹配整个输入字符串。但是,您想知道您的模式是否可以在输入字符串中找到
使用:
Pattern.compile("\\bMen").matcher(various[i]).find()