0

次の条件を満たさないすべてのギリシャ語 (utf-8) の単語に正規表現を一致させたい:

  • で終わる.
  • で終わる-
  • で終わる'
  • 数字で終わる (1-9)
  • 皮切りに.
  • 皮切りに,
  • 皮切りに-
  • 最初の文字は大文字
  • すべての文字は大文字です

これは可能ですか?\p{Greek}{3,}ギリシャ語の単語に一致させるには、少なくとも 3 文字のギリシャ語の UTF-8 単語に一致する whichを使用します。

私は ruby​​ でプログラムを書いていますが、perl やその他の cli ツール/言語で実行できる場合は、出力をテキスト ファイルにダンプするスクリプトを作成します。

4

1 に答える 1

3
(?<!\S)(?=\S*\p{Greek})(?![-,.\p{Lu}])(?![\p{Lu}\P{L}]+\b)\S+(?<![-.'1-9])(?!\S)

この野獣を分解しましょう:

  • 正規表現の核心は、\S+正と負のアサーションの束に囲まれた真ん中にあります。
  • (?<!\S)- 単語の前に空白以外の文字があってはなりません。これにより、単語の途中でマッチを開始することがなくなります。
  • (?=\S*\p{Greek})- どこかに少なくとも 1 つのギリシャ文字が含まれている必要があります。
  • (?![-,.\p{Lu}])- ダッシュ、コンマ、ドット、または大文字で単語を開始することはできません\p{Lu}
  • (?![\p{Lu}\P{L}]+\b)- 単語はすべて大文字と記号であってはなりません。
  • (?<![-.'1-9])- 単語は、ダッシュ、ドット、アポストロフィ、または 1 ~ 9 の数字で終わってはなりません。
  • (?!\S)- 単語の後に空白以外の文字を続けてはなりません。これにより、単語の途中でマッチが終了することがなくなります。
于 2012-12-15T09:16:27.717 に答える