正则表达式奇怪匹配问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 23:54:44
<div class="t1">你好啊</div>
<div class="t1">你好帅呀</div>
<div class="t1">你好酷呀</div>
<div class="t1">这里是需要得到的内容</div>
我用的是多行匹配模式
我想用正则得到"<div class="t1">这里是需要得到的内容</div>"数据,
我开始用了一下的正则表达式方式
(<div class=.*>.*?[\xA1-\xFE]{20,}.*[\xA1-\xFE]{50,}.*?</div>)
但是得到的数据还是从最上面那个<div class="t1">开始,然后得到
<div class="t1">你好啊</div>
<div class="t1">你好帅呀</div>
<div class="t1">你好酷呀</div>
<div class="t1">这里是需要得到的内容</div>
请高手帮忙,用什么方法可以得到<div class="t1">这里是需要得到的内容</div>这个内容
请问可以用零宽断言吗?我就想得到最下面条数据! 希望高手帮忙

为什么不可以用预搜索 可以啊

按你说的貌似只是字数不同
你有没有限制贪婪匹配

要不把<div class....>...</div> 匹配内容选出来再挑选一次了

再讨论了

.+<div class=.+?>(.+?)</div>
我写了一个,不知道你的文本具体信息是什么。
我想既然是匹配最后的就必须用匹配优先去除前面的多余字符“.+”就是匹配这些字符的,不太好的事一般的正则逆环视不提供类似(?<=.+)的方法,可能是效率和空间问题。()里的内容应该就是最后的内容,我用emediter试过了,把文本替换成\1,直接找到最后字符串还是想不出来,加入环视又更加换乱,如果你用perl或者java这个方法应该可以一次就找到。