Я пытаюсь сопоставить определенные теги span из источника HTML.
Атрибут lang и внутренний 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
Поскольку регулярное выражение имеет тенденцию быть жадным, это выражение соответствует полному предмету, а не только одному тегу span и его содержимому.
Как мне сопоставить только один span-тег?