单个字母单词的正则表达式

时间:2017-05-15 02:20:40

标签: java regex regular-language

我将Java用于带有字符串输入流的应用程序。我想要一个正则表达式,可以检测是否有一个单字母" C / c",但不只是一个字母" C / c"在更长的时间。

例如:

  • "我喜欢C。" - >真
  • "我喜欢加拿大。" - >假
  • " C&#34。 - >真
  • "我喜欢C和C ++。" - >真

我认为这种模式应该像&#34; big <- data.frame(Region=rep("Texas",2), Region2=c("Dallas","Houston")) merge(dat,big) # Region var1 var2 Region2 #1 Texas XX XX Dallas #2 Texas XX XX Houston #3 Texas XX XX Dallas #4 Texas XX XX Houston &#34;,前者*c*不应该是字母,后者*应该是{{1}之一或空格。

我只是对正则表达式感到困惑。我尝试了一些像*这样的模式模式,但它还没有工作。

3 个答案:

答案 0 :(得分:3)

使用单词边界标记

String pattern = ".*\\b[Cc]\\b.*"; 

\b匹配单词边界,即非字母旁边的任何字母。

您需要使用2个反斜杠来转义Java的反斜杠。

开头和结尾的.*确保Java不会尝试在输入的开头和结尾锚定模式。

答案 1 :(得分:1)

使用\W\W是非单词字符。

\W[cC]\W

https://regex101.com/r/khvMQk/1

答案 2 :(得分:0)

试试他的

var pattern = /(\ bC \ b)/ i;

https://regex101.com/r/gN5Z8Q/1