目标:
无论使用多少白色或任何应该选择的字母,都要使用正则表达式。
问题:
当我在“test”>“和”testtest“之间的空间较小时,正则表达式代码可以工作,但如果我在”test“>”之间有更多空间“和“testtest”比正则表达式代码不起作用。
我错过了那部分代码?
谢谢!
dotnet的正则表达式
(?<=<p class="listing__address">)(.+?)(?=</span><span class="listing__map-link">)
工具我在互联网上用于正则表达式。
http://regexstorm.net/tester
更少的空间:
<p class="listing__address"> <a onclick="LogAction('9875', 'Map')" href="https://asdf test"> testtest, <span>5252 Søreidgrend </span><span class="listing__map-link">lkjlkj</span></a></p>
更多空间:
<p class="listing__address"> <a onclick="LogAction('9875', 'Map')" href="https://asdf test">
testtest, <span>5252 Søreidgrend </span><span class="listing__map-link">lkjlkj</span></a></p>
答案 0 :(得分:0)
您想告诉Regex引擎使用单行,因此忽略换行符:
var x =
@"<p class=""listing__address""> <a
onclick=""LogAction('9875', 'Map')"" href=""https://asdf test"">
testtest, <span>5252 Søreidgrend </span><span class=""listing__map-link"">lkjlkj</span></a></p>";
var regex = new Regex(
"(?<=<p class=\"listing__address\">)(.+?)(?=</span><span class=\"listing__map-link\">)",
RegexOptions.Singleline);
Assert.That(regex.IsMatch(x));
这解决了眼前的问题,但每个问题都解决了这个问题。评论,用正则表达式解析HTML是一个危险的游戏。