正则表达式:匹配除一个特定字符之外的所有内容



我尝试制作一个特定的表达式,但我无法解决我的实际问题。也许你们中的一些人可以...

我有字符串:

<!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]+;

谢谢,伙计们!

您可以使用

"([^"rn]{10,})"

请参阅正则表达式演示。

[^"rn]{10,}模式匹配除"、CR 和 LF 之外的任何字符的 10 次或更多次出现。

请注意,您可以在此处使用贪婪限制(范围/间隔(量词。

要限制通用模式,最好检查您的要求。如果您实际上打算匹配字母、数字和_,则可以将[^"rn]否定的字符类替换为w速记字符类。

相关内容

  • 没有找到相关文章

最新更新