区块链技术博客
www.b2bchain.cn

Java Regex:将整个单词与单词边界匹配 – java程序员分享

本文介绍了Java Regex:将整个单词与单词边界匹配 – java程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

我正在尝试使用Java检查字符串是否整体上包含一个单词。以下是一些示例:

Text : "A quick brown fox" Words: "qui" - false "quick" - true "quick brown" - true "ox" - false "A" - true 

下面是我的代码:

String pattern = "\b(<word>)\b"; String s = "ox"; String text = "A quick brown fox".toLowerCase(); System.out.println(Pattern.compile(pattern.replaceAll("<word>", s.toLowerCase())).matcher(text).find()); 

与上面示例中提到的字符串一样,它也可以正常工作。但是,如果输入字符串包含%(等字符,我会得到不正确的结果,例如:

Text : "c14, 50%; something (in) bracket" Words: "c14, 50%;" : false "(in) bracket" : false 

这与我的regex模式有关(或者我正在错误地进行整个模式匹配)。谁能建议我一个更好的方法。

参考方案

看来您只想匹配用空格括起来的“单词”(或在字符串的开头/结尾)。

String pattern = "(?<!\S)" + Pattern.quote(word) + "(?!\S)"; 

后面的(?<!S)否定looklook将使所有紧随其后的字符而不是空格的匹配失败,而(?!s)是一个否定的lookahead,将使所有紧随其后的char而不是空格的匹配失败。必须使用Pattern.quote()来转义特殊字符,这些特殊字符需要在正则表达式模式中视为文字字符。

我正在使用3个字符分割字符串:空格,破折号和逗号我想要的是能够使用这3个字符的任意组合进行拆分,例如:-,(破折号后跟逗号)或,–(逗号后加2破折号)或- , -(破折号,逗号间隔破折号)等 String address = "Sector -18B, Dwarka"; String[] addressParts = address.s…

我在使用b作为Java Regex中的单词定界符时遇到困难。对于text = "/* sql statement */ INSERT INTO someTable"; Pattern.compile("(?i)binsertb");找不到匹配项Pattern insPtrn = Pattern.compile(&…

可以说我有多个模式P1,P2,P3等。这些模式是不同的Regex模式,以匹配DATE的不同变体。如何在一段代码中最有效地将它们与相同的输入文本进行匹配。当然,我可以编写一个for()来逐个循环这些模式,但是有更好的方法吗? 参考方案 我认为您可以使用正则表达式的|运算符,并将不同的正则表达式放在括号内,以视为要匹配的整个正则表达式。("(P1)|(…

如何使用正则表达式获取URL的最后部分,这是我的URL,我希望最后一个斜杠和#之间有一段句号http://mycompany.com/test/id/1234#this 所以我只想获取1234。我有以下内容,但并未删除“ #this”".*/(.*)(#|$)", 在为数据建立索引时,我需要这样做,所以不想使用URL类。 参考方案 怎么样…

我想用正则表达式java拆分字符串。例如:String: (5,4,a) 我想在下面拆分两个String:5 4,a 如果字符是逗号字符后的数字,请分割如果字符是逗号后的字母,请不要拆分我用[-|,]\s*[^\w] 但是没有权利 参考方案 您可以使用正向前瞻-一个告诉正则表达式引擎某个字符必须存在的请求,但不应将其作为匹配的一部分使用:"[(…

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Java Regex:将整个单词与单词边界匹配 – java程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们