0

我是正则表达式的新手,需要一些帮助。

我有这些句子:

this is a-word
a word this is
aword is this
AWord is this
A-WORD is this

我想知道单词a wordor a-wordor awordor or AWordorA-WORD是否在句子中。

我试过这个:

String sentence = "AWord is this";
String regex = "(a(\\s,'-','')word)\\i";
if (sentence.matches( regex)){
  .....
}
4

2 回答 2

2

尝试

a[^\w]?word

这将匹配任何a后跟除字符以外的任何内容,然后是word.

要匹配更窄范围的字符串,请使用 [-\s]

放在(?i)正则表达式的开头以使其不区分大小写

(?i)a[^\w]?word

参考,在此处搜索以不区分大小写的方式搜索字符串的其他方式)

并记得逃避\to\\

然而,“最安全”的方法是使用这个

((a word)|(a-word)|(aword)|(AWord)|(A-WORD))

因为它将完全符合您的需要(如果您知道您要查找的确切域)

于 2012-09-19T12:33:11.360 回答
0

试试这个:(?:a[ -]?word|A-?W(?:ord|ORD)) 它将匹配您列出的所有单词

于 2012-09-19T12:34:25.013 回答