我正在尝试匹配来自 HTML 源的特定跨度标签。
标记的语言属性和内部 HTML 用作返回新字符串的函数的参数。
我想用被调用函数的结果替换旧的标签、属性和内容。
主题将是这样的:
<p>Some codesnippet:</p>
<span lang="fsharp">// PE001
let p001 = [0..999]
|> List.filter (fun n -> n % 3 = 0 || n % 5 = 0)
|> List.sum
</span>
<p>Another code snippet:</p>
<span lang="C#">//C# testclass
class MyClass {
}
</span>
为了提取 lang 属性的值和内容,我使用以下表达式对这些值进行分组:
/(<span lang="(.*)">(.*)</span>)/is
由于正则表达式往往是贪婪的,这个表达式匹配完整的主题,而不仅仅是一个跨度标签及其内容。
我如何设法只匹配一个跨度标签?