Java 用于检查单词是否以搜索字符开头的正则表达式
我试图写一个正则表达式来查找以搜索文本开头的单词 当我运行此程序时,我得到以下输出: 真正开始:3结束:6Java 用于检查单词是否以搜索字符开头的正则表达式,java,regex,Java,Regex,我试图写一个正则表达式来查找以搜索文本开头的单词 当我运行此程序时,我得到以下输出: 真正开始:3结束:6 Pattern p = Pattern.compile(("kh(\\w)"), Pattern.CASE_INSENSITIVE); String test = "Shakhir Khan"; Matcher m = p.matcher(test); System.out.println(m.find()+" start : "+m.start()+" end : "+m.end());
Pattern p = Pattern.compile(("kh(\\w)"), Pattern.CASE_INSENSITIVE);
String test = "Shakhir Khan";
Matcher m = p.matcher(test);
System.out.println(m.find()+" start : "+m.start()+" end : "+m.end());
我想要的是它应该从Khan
中找到“Kh”,而不是从Shakhir
中找到。它应该只出现在单词的开头,而不是中间。使用
词边界不会考虑特殊符号,对于
(^|\b|\s)kh
^
以锚点开头,|
是正则表达式中的或条件\b
是单词边界,\s
匹配空格字符
(^|\b|\s)kh