gpt4 book ai didi

java - 尝试理解单词边界

转载 作者:行者123 更新时间:2023-12-01 16:35:31 26 4
gpt4 key购买 nike

我正在学习正则表达式,更具体地说是单词边界。我有一段代码,我认为应该返回至少一个匹配项,但事实并非如此。

我使用的代码有什么问题

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);
}



}

输出如下

Does the string match the pattern? false
Does the string match the pattern? false
Does the string match the pattern? false
Does the string match the pattern? false

最佳答案

这不是因为单词边界。这是因为 .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);
}

关于java - 尝试理解单词边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9564446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com