0

次の文字列は、さまざまなドキュメントやさまざまな形式で何度でも表示される可能性があるため、引用符の間の部分を取り出したいと思います。次の条件を満たす文字列のみが必要です。" (2 つの引用符の間) で始まり、文字列内に 1 つ以上のドット (.) があります。

@CheckWith(値 = PasswordCheck.class、メッセージ = "validation.password.blah.foo")

次の正規表現は、文字列 validation.password.blah の最初の 3 つの部分を提供しますが、.foo を見逃しています

(\")([a-zA-Z]{1,}\.{1}){1,}
4

3 に答える 3

1

次のことを試してください。

"([a-zA-Z]{1,}\.[a-zA-Z.]{1,})"

通常は代わりに{1,}を使用できますが+、grep が拡張オプションなしでそれをサポートしているかどうかはわかりません。

説明:

"                  # match a literal '"' character
(                  # start capture group
  [a-zA-Z]{1,}       # one or more letters
  \.                 # match a literal '.' character
  [a-zA-Z.]{1,}      # one or more letters or '.' characters
)                  # end capture group
"                  # match a literal '"' character
于 2012-08-06T19:27:12.563 に答える
0

あなたが探している正規表現はこれだと思います:"[a-zA-Z]+(\.[a-zA-Z]+)+

最後は含まれ"ず、ドット間の文字のみを受け入れることに注意してください。

于 2012-08-06T19:27:31.697 に答える
0

egrep(または)がある場合grep -Eは、使用できます

"([a-zA_Z]+\.)+[a-zA-Z]+"

(引用符は正規表現の一部であり、必要に応じてエスケープします)。

于 2012-08-06T19:28:18.413 に答える