正则表达式(一个单词的三种类型)?

时间:2012-09-19 12:30:22

标签: java regex match

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

我有这些句子:

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

我想知道句子中是否有a worda-wordawordAWordA-WORD这个词。

我试过了:

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

2 个答案:

答案 0 :(得分:2)

尝试

a[^\w]?word

这将匹配任何a后跟除了char之外的任何内容,然后是word

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

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

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

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

并记得将\转义为\\

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

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

因为它将完全符合您的需求(如果您知道所需内容的确切域名)

答案 1 :(得分:0)

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