我是正则表达式的新手,需要一些帮助。
我有这些句子:
this is a-word
a word this is
aword is this
AWord is this
A-WORD is this
我想知道句子中是否有a word
或a-word
或aword
或AWord
或A-WORD
这个词。
我试过了:
String sentence = "AWord is this";
String regex = "(a(\\s,'-','')word)\\i";
if (sentence.matches( regex)){
.....
}
答案 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))
它将匹配您列出的所有单词