複数のシーケンスを結合するための正規表現

user2557930:

多くの人として、私はそれは「些細な」正規表現の問題思われるものに苦しんでいます。私はit.Atを抽出する必要があり、{}括弧内の単語に遭遇するたびに指定されたテキストに、最初のiを使用しました

"\\{-?(\\w{3,})\\}"

そして、それは大丈夫働きました:

限り言葉は 'のような任意のホワイトスペースや特殊文字を持っていませんでした。例えば{プロジェクト} Project.But {プロジェクトテスト}または{プロジェクトD'のアルセ}は何も返さない返します。私は\ s.Butを使用する必要が白文字のために、上記に追加する方法を絶対に私にとっては明確ではないことを知って、私が試しました:

"%\\{-?(\\w(\\s{3,})\\)\\}"))

しかしないworking.Also私は 'のような特殊文字を含む単語を追加したい場合は?その本当にイライラします

第四鳥:

あなたは使用することができ、文字クラスを [\w\s']使用すると、一致する可能性がありますどのような、それに追加します。

\{-?([\w\s']{3,})}

Javaでは

String regex = "\\{-?([\\w\\s']{3,})}";

正規表現のデモ

あなたが唯一の3空白の文字に一致するようにしたい場合は、繰り返しグループを使用することができます。

\{-?\h*([\w']{3,}(?:\h+[\w']+)*)\h*}

パターンについて

  • \{マッチ{文字
  • -? オプションのハイフン
  • \h* マッチ0+回A水平空白文字
  • ([\w\s']{3,}) 3回以上のいずれかの単語文字に一致するグループ内の捕捉、空白文字または '
  • (?:\h[\w']+)* マッチング0+回繰り返し1+水平空白文字は、文字クラスにリストされているものが続きます
  • \h* マッチ0+回A水平空白文字
  • } 一致 }

Javaでは

String regex = "\\{-?\\h*([\\w']{3,}(?:\\h+[\\w']+)*)\\h*}";

正規表現のデモ

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=202318&siteId=1