2016-05-06 16 views
0

マークアップの検索を行い、特定の属性を含まない特定のタグを探したいとします。
タグが{mytag}であり、属性が太字である場合、太字が欠落しているmytagの存在を検出したいと思います。大括弧で囲まれた文字列に別の文字列が含まれていない場合

これを見つける:
{mytagというサイズ= 3}

は、この無視:
{mytagという大胆= "true" のサイズ= 3}

+3

正規表現は、非正規言語を解析するための最良のツールではありません。 – hsz

+0

これはどのようなマークアップですか?ほとんどのマークアップでは、広く利用できる堅牢なパーサーがあります(HTMLの場合はHtmlAgilityPakなど)。 –

答えて

3

をあなたは

{mytag([^}](?!bold=))*} 
ような何かを行うことができます

これはタグと一致し、負の先読みを使用してboldタグが末尾の}の前に表示されていることを確認します。

See it here at regex101

コメントによれば、正規表現はここでは理想的ではありません。属性に}が含まれていると、失敗します。例えば。 {mytag name="abc}def" bold="true"}

よろしく

関連する問題