2017-05-24 1 views
0

私の文字列の2番目または最後のドットの後と末尾の中かっこの前に任意のパターンを見つける必要があります。 @ {image.imagetext}ここで名前付きグループ(action)は空で、@ {image.imagetext.NoHtml}(NoHtmlのようなアクションがたくさんあります)で、名前付きグループの結果はNoHtmlになります。可変テキストセグメントの最後のパターンを見つける

+0

正規表現たかったのですか? – anubhava

+0

はい、私は今それを持っていると思います:(? @ {(?(?:[^ \。] *(?:\。[^ \。] *)))(? [^}] *)?}) –

+0

新しい編集されたバージョンは、アクショングループに "xy"を与えます –

答えて

1

この正規表現を使用して、最後のDOTの後にあるDOTSが2つある場合のアクション部分に一致させることができます。

(?<tag>@{(?<tagname>[^.]+)\.(?:[^.}]*\.)+(?<action>[^.}]+)}) 

RegEx Demo

+0

アクショングループの内容を除くすべての文字を含むようにタグ名グループを拡張することはできますか? –

+0

私はあなたの正規表現の解決が大好きですが、私はまだそこにはないようです。最初は@ {image.imagepath}パターンと一致せず、終了ドットはタググループ内にあるべきではありません。 –

+0

この正規表現は試してみることができます:['@ {(?(? [^。] +)\。(?:[^。}] * \。)*?[^。}] *)\。? ? [^。}] *}} '](https://regex101.com/r/Ii0jmO/5) – anubhava

0

これは私はあなたがどんな試みを行いました

(?<tag>@{(?<tagname>(?:[^\.]*(?:\.[^\.]*)+))(?:(?:\.)(?<acti‌​on>[^}]*))}) 
+0

[正規表現のデモを確認](https://regex101.com/r/Ii0jmO/3)非常に遅くなる(368ステップと私の正規表現のように107ステップ) – anubhava

関連する問題