我在文件中有一些文字为
<title>Dhind</title>
<title>WT.</title>
<title>Plant Leaves:</title>
<title>Denia;</title>
<title>Erodé</title>
我试图在我的文件中的结束标记</title>
之前找出是否有点,逗号,分号或冒号,除非有一个不代表4位数的分号十六进制实体....即搜索应该找到以下结果
<title>WT.</title>
<title>Plant Leaves:</title>
<title>Denia;</title>
而不是<title>Erodé</title>
作为&#34; ; &#34;是实体代码的一部分,因此被忽略。
我目前正在使用此正则表达式string pattern = @"([.,:]|((?<!&#x\w{4});))</title>"
并与之匹配。
是否有更高效的正则表达式模式,我不是很擅长正则表达式...
注意:该文件不是有效的xml或html,因此xml / html解析技术在这里没用。
答案 0 :(得分:1)
这个正则表达式可以解决这个问题:
(?<!&#x[0-9a-fA-F]{4});(?=<\/title>)|([,.:])(?=<\/title>)
见这里
答案 1 :(得分:1)
正则表达式:
<title>.*(?:\.|,|:|;)(?<!&#x[0-9a-fA-F]{4};)<\/title>
说明: