我有一个包含多个特殊字符的大型HTML,格式为
或"�
。
其中一些是错误的,因为他们缺少初始& 。
我想搜索错误的空间字符。我知道我可以通过以下正则表达式搜索所有正确的特殊字符:
\&(?:[a-z]+|#x?\d+);\
但是我需要正则表达式来搜索错误的(没有初始&)。 你能帮助我吗? 提前致谢
编辑:
正如所建议的那样,我将发布一个例子。我的HTML包含以下声明:
<![CDATA[<nolink>blablabla blablabla</nolink>]]>quot;
我们有2个特殊的HTML字符:
quot;
我有兴趣找到第二个项目,因为它是错误的(laking the initial&amp;)。
因此请求的正则表达式的输出应为:quot;
答案 0 :(得分:2)
你可以建立
&
添加你需要的“特殊字符”。
这个简单的一个匹配一个序列,而不是一个(?<!&)
(负面的lookbehind #
确保那个),那是
#[0-9a-f]+
(\b
)(添加不区分大小写的标志以使十六进制字符能够为大写。)
修改强>
在“单词实体”之前添加了对分词((?<!&)(?:\b(?:[a-z]{2,8}\d{0,2})|#[0-9a-f]+);
)的检查,以确保它与部分实体(如果有)不匹配。
编辑2
要使通用重新匹配所有实体(可能还有其他非实体单词),请尝试
{{1}}
答案 1 :(得分:0)
我试过了:\s(?!&)[A-Za-z0-9]+;
使用
在Regex101尝试&wudhilweuh212313i9dioed; wcihecrehc; &wkjdnwkne13131; eiou2ei; 1121i2093;
qeoidjwidw29i1291;
匹配
wcihecrehc; eiou2ei; 1121i2093;
qeoidjwidw29i1291;
我的例子只是随机性。为什么?据我了解,您希望任何包含A-Z
,a-z
和0-9
字符串的字符串以空白字符开头,后跟&
并结束与;
。所以我不想让它太受限制。