我有以下HTML文本:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />
<script src="main.js" defer></script>
</head>
<body>
<p> hello with JSON</p>
<button id="btn">click me!</button>
</body>
</html>
我正在尝试使用RegEx模式定位零件:
> <div class=WordSection1><p class=MsoNormal dir=RTL><span lang=HE style='font-family:"Arial",sans-serif;color:#1F497D'>Hi</span><span dir=LTR style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal dir=RTL><span dir=LTR style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal dir=RTL style='line-height:normal'><b><span dir=LTR>From</span></b><span dir=RTL></span><b><span lang=HE><span dir=RTL></span>:</span></b><span lang=HE> </span><span dir=LTR>Some Guy</span><span dir=RTL></span><span lang=HE><span dir=RTL></span> <br></span><b><span dir=LTR>Sent</span></b><span dir=RTL></span><b><span lang=HE><span dir=RTL></span>:</span></b><span lang=HE> </span><span dir=LTR>Tuesday, October 16, 2018 5:02 PM</span><span lang=HE><br></span><b><span dir=LTR>To</span></b><span dir=RTL></span><b><span lang=HE><span dir=RTL></span>:</span></b><span lang=HE> </span><span dir=LTR>Other Guy</span><span dir=RTL></span><span lang=HE><span dir=RTL></span> <</span><span dir=LTR>otherguy@domain.com</span>
我正在使用的RegEx模式是:
<span dir=LTR>From</span>
我要解决的问题是,上述模式比我要标记的部分匹配文本的更大部分。
我的问题是,如何使用正则表达式找到最短的匹配项。
查看实际比对(标记)和所需比对(双标记)的图片。
答案 0 :(得分:0)
正则表达式将始终与最左边的匹配项匹配。虽然可以让正则表达式稍后开始,但是您不能强制非最左匹配。
在您的情况下,您可以通过在Actual Score
之后禁止使用任何50
(例如)来使匹配更具体:
Score Category
如果您的属性包含(未转义的)100
,则此操作将中断。
此外,您不应使用正则表达式来解析HTML。参见RegEx match open tags except XHTML self-contained tags