正确的标签如图1
匹配错了的如图2
还有一种情况是无闭合标签,中文部分之后是空格、英文句子或标点符号之类的。
请问要找出那些不匹配的闭合的标签或遗漏掉的闭合标签,在Emeditor里正则查找该如何写?
这里先谢过了。
正确的标签如图1
用其他工具吧,好像论坛里有提到过
要闭合就用bs4读取再保存就行了,但是准确性上别做太多指望
看过去一堆的错误,如何是正确的?
建议使用Tidy
这个,大概有个方向。
汉字+标点+标签。
查找 ([\x{4e00}-\x{9fff},。?:;‘’“”、`!……——()]+)(错误标签)
替换 \1正确标签
这是我看了 牛津中阶双解【CSS】2019.12.12
按照其标签和css做的一次尝试。说好听一点,没学到家,难听点,学坏了。原文本来源于《史氏汉英翻译大词典》图片词典制作记录帖子--完成版已发布
那儿鄙人有几个相关贴子。现在提供几个词条,如果您有时间,麻烦您看看并给予指导。
请帮忙.txt (13.1 KB)
其实,你大可直接把中文英文标签删除,
然后重新匹配汉字,加上新标签。
谢谢!本来想弄懂这个问题,在网上耗费了很多时间。在网上看到的也是两种处理方式,一、绕道,二、举例。举例的本人都试了,要么报错要么不是需要的结果。主要还是本人水平很低,所以现在只想直接获取答案。没有更多时间去捣鼓了。
要闭合标签找我啊。
兄台的工具确实强大哈,推荐。
不过对有的嵌套位置问题判定过于严格,如<a><b><c><d></b></d></c></a>
会报4条错误。
手工改正,只要把</b>
后挪一下就可消除这4条错误。
请问在哪儿?
写得很简陋,还有很多问题,有需要可以把文本文件发我。标签错误的行号列号,会给你标注出来。
@jcz777 请教下,为什么你要用正则引擎Onigmo的格式 [\x{4e00}-\x{9fff}],缺省引擎的格式 [\u4e00-\u9fff] 不是更好吗?有什么说法?
为了能匹配扩展区汉字。
默认的boost regex引擎做不到,只能换Onigmo了。
Emeditor汉字匹配
注意:重要一个,正则表达式引擎修改为:Onigmo。
基本汉字 [\x{3007}\x{4e00}-\x{9fff}]
扩展A区 [\x{3400}-\x{4DBF}]
扩展B区 [\x{20000}-\x{2A6DF}]
扩展C区 [\x{2A700}-\x{2B73F}]
扩展D区 [\x{2B740}-\x{2B81F}]
扩展E区 [\x{2B820}-\x{2CEA1}]
扩展F区 [\x{2CEB0}-\x{2EBE0}]
扩展G区 [\x{30000}-\x{3134A}]
兼容 [\x{F900}-\x{FAD9}]
兼容扩展 [\x{2F800}-\x{2FA1D}]
部首扩展 [\x{2E80}-\x{2EF3}]
注音 [\x{3105}-\x{312F}]
笔画 [\x{31C0}-\x{31E3}]
康熙部首 [\x{2F00}-\x{2FD5}]
注音扩展 [\x{31A0}-\x{31BA}]
私用SSP [\x{E000}-\x{F8FF}]
私用PUA-A [\x{F0000}-\x{FFFFF}]
私用PUA-B [\x{100000}-\x{10FFFF}]
就是说,如果选默认的boost regex引擎,用这个式子 [\u4e00-\u9fff] 也搜不到扩展区汉字?这就不太好理解了,不是 4e00~9fff 区间对了就能匹配到吗?
我的理解,不同引擎的差别只是写法不同,\x{4e00} \u4e00,难道还有别的不同?
基本区汉字4e00-9fff有20992个汉字,一般来说,用这个范围就可以了。
但是经常会碰到扩展区的汉字,boost regex就匹配不了。
(最常用的新华字典都有一百多个B区汉字)
谢谢解答!还是不太理解这两个引擎为什么会有这个差别。
EmEditor用扩展A区第一个字“㐀”试验发现:
根据这个网页的介绍,Onigmo引擎下匹配所有汉字可以用 \p{Han},刚试了下 “㐀” 这个字是可以匹配到的
<>EmEditor v15.7.0 beta 1 – EmEditor (Text Editor)<>
使用\p{Han}
,需要考虑词典文本字符覆盖的范围。Unicode已经更新到15, 而Onigmo目前只支持到Unicode 12,也就是说对于13-15的汉字,用\p{Han}
,是匹配不到的。
谢谢!<><><>