Regex 用1个正则表达式替换2个正则表达式?

Regex 用1个正则表达式替换2个正则表达式?,regex,html-parsing,Regex,Html Parsing,我的一个朋友对正则表达式有问题。他基本上有这个HTML 代码: 我不想要这个 起动串 测试1 我想要这个 测试2 我想要这个 尾串 胡言乱语 我不要这个 起动串 测试1 我想要这个 测试2 我想要这个 尾串 胡言乱语 我不要这个 正如我在标题中所写,他目前使用2个正则表达式来获取上面代码中的“我想要这个”字符串: (?<=startString).+?(?=endString) <a>(.+?)</a> (?这样的模式可以工作(在单线模式下): (?简单的回答是

我的一个朋友对正则表达式有问题。他基本上有这个HTML 代码:

我不想要这个
起动串
测试1
我想要这个
测试2
我想要这个
尾串
胡言乱语
我不要这个
起动串
测试1
我想要这个
测试2
我想要这个
尾串
胡言乱语
我不要这个
正如我在标题中所写,他目前使用2个正则表达式来获取上面代码中的“我想要这个”字符串:

(?<=startString).+?(?=endString)
<a>(.+?)</a>

(?这样的模式可以工作(在单线模式下):


(?简单的回答是,只有对于具有组集合的引擎,您朋友的两个正则表达式才能组合成一个正则表达式。我可以想到Dot-Net

检查你朋友的表情:

 (?<=startString).+?(?=endString)

(?不要使用正则表达式来解析HTML。请使用适当的HTML解析模块。您无法使用正则表达式可靠地解析HTML,您将面临悲伤和挫折。一旦HTML与您的期望发生变化,您的代码将被破坏。有关如何使用PHP模块正确解析HTML的示例,请参阅或我已经编写、测试和调试过了。-阅读顶部答案如果你使用Ruby,那么Nokogiri就足够了。感谢输入人员。他会看一看。:)这几乎是正确的。请看:它与一个“我不想要这个”匹配,但与所有其他正确模式匹配。不过,谢谢,越来越近了!但是,“单线”模式到底是什么意思?
(?<=startString.*)<a>(.+?)</a>(?=.*endString)
 (?<=startString).+?(?=endString)
 <a>(.+?)</a>