HTML ファイルを調べて、渡した正規表現と一致するかどうかに基づいて要素を見つける正規表現があります。要素が一致するかどうかを判断する主な要素の 1 つは、ID です。ID は、私が使用することに決めたいくつかの特殊文字でなければなりません。問題は、HTML で ID を記述するときに二重引用符または単一引用符のいずれかを使用する人がいることです。どちらの場合もキャッチできるようにしたいです。したがって、私の正規表現は次のとおりです。
preg_match('@(<)([^\s]*).*(id)\s*=\s*["|\']{{ALViewElement_'.$viewElement.'}}["|\'][^/]*?(>)@i', $viewFile, $elementMatches, PREG_OFFSET_CAPTURE)
真ん中近くに私がいる場所が見えますid
。等号の後には["|\']
、最後に同じ引用符があります。
私のhtmlが次のようになっている場合、一致します:
<section id="{{ALViewElement_resume}}" data-test="testing" >
<!--{{RESUME_ADD_CHANGE_PIECE}}-->
<!--{{RESUME}}-->
</section>
ただし、代わりに一重引用符を使用すると、一致しません。
<section id='{{ALViewElement_resume}}' data-test="testing" >
<!--{{RESUME_ADD_CHANGE_PIECE}}-->
<!--{{RESUME}}-->
</section>
一重引用符を拾わないという正規表現の何が問題なのか理解できないようです。何か案は?