簡體   English   中英

正則表達式:匹配除一個特定字符之外的所有內容

[英]Regular Expression: Match everything except one specific character

我嘗試做一個特定的表達,但我無法解決我的實際問題。 也許你們中的一些人可以...

我有字符串:

<!ENTITY a0 "dosdosdosdosdosdosdosdosdosdosdosdosdosdos"

現在我想匹配引號之間的所有內容(至少 10 個字符),但引號除外。

我開始於:

"(.{10,}?)" 

乍一看,這匹配得很好,但這也匹配以下對我來說是錯誤的字符串。

<!ENTITY a0 "dosd" 
<!ENTITY a0 "osdos"

匹配以第一行的第一個引號開始,以最后一行的最后一個引號結束。

我明白為什么會發生這種情況,但我無法構建一個正則表達式,除了引號外,每個字符都匹配 10 次。 點太籠統了。

編輯:新問題

新字符串:

<data>&a0;&a0;asddd&a0;&a0;&a0; 234324&a0;&a0;&a0;&a0;&a0;&a0;</data>

現在我嘗試匹配這兩個 XML 標簽之間的特定表達式,直到出現第一個“<”。 在這些標簽之間,我需要至少 10 個“&a0”的外觀,這導致

&[a-zA-Z0-9]+;

問題是,不同的其他字符串(除了 < )也可能出現在這些標簽之間。 這有可能解決嗎?

我試過:

<[a-zA-Z0-9]+>([^<]{10,}?)<\/[a-zA-Z0-9]+>

但是現在它可以匹配所有內容而不是想要的 &[a-zA-Z0-9]+;

謝謝你們!

您可以使用

"([^"\r\n]{10,})"

請參閱正則表達式演示

[^"\\r\\n]{10,}模式匹配 10 次或更多出現的任何字符,但" 、 CR 和 LF 除外。

請注意,您可以在此處使用貪婪的限制(范圍/間隔)量詞。

要限制通用模式,一個好主意是檢查您的要求。 如果你真的打算匹配字母、數字和_ ,你可以用\\w速記字符類替換[^"\\r\\n]否定字符類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM