gpt4 book ai didi

Java正则表达式匹配单词的开头?

转载 作者:行者123 更新时间:2023-12-02 05:03:27 25 4
gpt4 key购买 nike

目标:对于给定的术语,我想检查该术语是否存在于单词的开头。例如,如果术语是“t”。然后在句子中:

"This is the difficult one Thats it"

我希望它返回“true”,因为:

This, the, Thats

所以考虑一下:

public class HelloWorld{

public static void main(String []args){

String term = "t";
String regex = "/\\b"+term+"[^\\b]*?\\b/gi";
String str = "This is the difficult one Thats it";
System.out.println(str.matches(regex));

}
}

我收到以下异常:

Exception in thread "main" java.util.regex.PatternSyntaxException:
Illegal/unsupported escape sequence near index 7
/\bt[^\b]*?\b/gi
^
at java.util.regex.Pattern.error(Pattern.java:1924)
at java.util.regex.Pattern.escape(Pattern.java:2416)
at java.util.regex.Pattern.range(Pattern.java:2577)
at java.util.regex.Pattern.clazz(Pattern.java:2507)
at java.util.regex.Pattern.sequence(Pattern.java:2030)
at java.util.regex.Pattern.expr(Pattern.java:1964)
at java.util.regex.Pattern.compile(Pattern.java:1665)
at java.util.regex.Pattern.<init>(Pattern.java:1337)
at java.util.regex.Pattern.compile(Pattern.java:1022)
at java.util.regex.Pattern.matches(Pattern.java:1128)
at java.lang.String.matches(String.java:2063)
at HelloWorld.main(HelloWorld.java:8)

以下方法也不起作用:

import java.util.regex.*;
public class HelloWorld{

public static void main(String []args){

String term = "t";
String regex = "\\b"+term+"gi";
//String regex = ".";
System.out.println(regex);
String str = "This is the difficult one Thats it";
System.out.println(str.matches(regex));


Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
System.out.println(m.find());
}
}

示例:{ 这个,一,二,那些,谢谢 }这两个感谢的话;结果应该是正确的。

谢谢

最佳答案

由于您使用的是 Java 正则表达式引擎,因此您需要以 Java 能够理解的方式编写表达式。这意味着删除尾部和前导斜杠并将标志添加为 (?<flags>)在表达式的开头。

因此你需要这个:

String regex = "(?i)\\b"+term+".*?\\b"

看看regular-expressions.info/java.html了解更多信息。可以在此处找到支持的功能的比较(仅作为入口点):regular-expressions.info/refbasic.html

关于Java正则表达式匹配单词的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28029946/

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