2014-08-30 68 views
-1

我有一個網頁,用戶在其中輸入可能包含html的文本。我可以使用正則表達式<.+?>來匹配html標籤,但我需要匹配不在其中的文本。例如:<div id="dont-match-inside-tag">Match this text</div>。除了.之外,正則表達式還需要允許除標記外的其他文本匹配。一個示例將匹配字符串中未包含在標記中的所有大寫字母:<div>Match ONLY the UppERCase LettERS</div>在html標記外匹配

+0

是的,我想匹配任何大寫字母,無論它們出現在哪裏,無論它是否包含在div標籤內部。 – user3809816 2014-08-30 16:20:40

+0

那麼這個「

Match this text
」呢? – 2014-08-30 16:24:34

+0

目前尚不清楚你想要什麼。全部大寫,無論標籤屬性還是標籤內容?標籤內容中只有大寫字母?標籤內容的上部_and_下部?如果你想得到一個適合你的答案,那麼整個問題需要充實,寫得更好。 – 1252748 2014-08-30 16:32:49

回答

0

只匹配大寫字母這是目前只是標籤外,

(?:(?!<.+?>)[A-Z])+(?=[^<>]*(?:<\/?|$)) 

DEMO

OR

[A-Z](?=[^<>]*(?:<\/?|$)) 

匹配所有的大寫字母,它必須是接着是零或更多時間的任何字符不是<>再次跟着字符串<</$行結束錨點。 DEMO

+0

我如何將它改爲只匹配大寫字母?我只希望它匹配這個字符串中的大寫M:'foo bar

Match this text
bar' – user3809816 2014-08-30 16:34:48

+0

我還發布了一個解決方案,只匹配大寫字母。請參閱http://regex101.com/r/oL4bB5/8 – 2014-08-30 16:37:51