0

私は正規表現が初めてで、助けが必要です。

私はこれらの文を持っています:

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)){
  .....
}
4

2 に答える 2

2

試す

a[^\w]?word

aこれは、任意の後にchar以外の文字が続き、その後に。が続くものと一致しwordます。

より狭い範囲の文字列に一致させるには、[-\s]を使用します

正規(?i)表現の先頭に配置して、大文字と小文字を区別しないようにします

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

参照、大文字と小文字を区別しない方法で文字列を検索する他の方法については、ここで検索してください)

に逃げることを忘れないで\ください\\

ただし、「最も安全な」方法は、これを使用することです

((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 に答える