[英]JavaScript Regex, match P but not PARAM
使用JavaScript RegEx。
如何匹配<p>
元素(包括屬性),而不匹配<param>
或其他以“ P”開頭的HTML元素。
嘗試:
/(<p(?:\s+[^>]*)?>)/i
/
( #start capture group
<p #match '<p'
(?: #start non-capture group
\s+ #match one or more white space characters
[^>]* #match zero or more characters that arent >
)? #end non-capture group - make it optional
> #match '>'
) #end capture group
/i #end regexp - make case insensitive
/<p\b[^>]*>/i
\\b
匹配單詞邊界; 在“ p”之后,表示下一個字符(如果有下一個字符)不是字母,數字或下划線。
披露: [^>]*
並不是匹配其余標簽的正確方法,因為屬性值可以合法地包含尖括號。 但這可能已經足夠好了,無論如何這不是問題所在。
<(p|P)([\\s].*)?>
似乎效果不錯=)。 但是,當您可以使用DOM甚至XML / XPath /任何東西時,都不應該使用RegEx。
這是我的嘗試:
/\<P(\s+\w+=\"?[^\"\s\>]*\"?)*\>/gi
/<(?:p|P)\s+/.exec(s);
盡管它與整個標簽不匹配,但是考慮到屬性中允許使用標簽結束符號>,這相當復雜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.