Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想匹配封装在<?and中的所有文本?>。我发现了一种使用前瞻的相当简单的方法:
<?
?>
<\?([^?]|\?(?!>))*\?>
不幸的是,我正在为其编写正则表达式的工具不支持前瞻。有没有解决的办法?
对于您的具体情况,您可以简单地使重复变得不贪婪:
<\?(.*?)\?>
这只会持续到第一个?>。之前的任何单曲?都将被 覆盖.*,但是当引擎遇到第一个?>时它将停止。
?
.*
请注意(除非您使用DOTALL修饰符)这不适用于跨多行的部分。如果你不能使用修饰符,这将(独立于平台):
DOTALL
<\?((.|[\r\n])*?)\?>