正则表达式匹配两个标记之间的值

来源:百度知道 编辑:UC知道 时间:2024/06/30 19:37:18
如何匹配

lkasdjflas;kjdfl;sa<start>asfdlk;jasdklfjas<end>adfasdflkj;kljasdf
asdfiojas;dfkjas;lkdf<start>alkjfasl;kjdfas<end>fsdafsadf

取<start>asfdlk;jasdklfjas<end>和<start>alkjfasl;kjdfas<end>

怎么取???

用惰性模式(而非贪婪模式),用<start>.*<end>就可以了
在javascript里形如这样
var s="lkasdjflas;kjdfl;sa<start>asfdlk;jasdklfjas<end>adfasdflkj;kljasdfasdfiojas;dfkjas;lkdf<start>alkjfasl;kjdfas<end>fsdafsadf"

var resultArray=s.match(/<start>.*?<end>/g);

resultArray[0]和resultArray[1]即为所求

上述表达式中*?为惰性模式。

(?<组1><start>\s*\S*<end>) 还需要 去掉 <start><end>用 零宽断言 有问题发消息

匹配
<start>(.*?)<end>

要怎么取出来,就看你用什么语言,或什么软件了. 一般是\0