c# - 组不在正则表达式中工作

标签 c# regex

我写了一个正则表达式来查找 html 元素的 id 值:

<.+ id\s*=\s*["'](.+)["'].*/?>

对于大多数情况,它返回 id 值,但对于这一个不返回:

<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />

它匹配以下组值:

__EVENTTARGET" value="

而不是预期的 __EVENTTARGET

正则表达式有什么问题?

最佳答案

正则表达式不是解析 HTML 的最佳工具。

你可以尝试制作它non-greedy :

<.+ id\s*=\s*["'](.+?)["'].*/?>
                    ^

但是在其他示例中它仍然会失败。最好使用 HTML 解析器,例如 HTML Agility Pack .

关于c# - 组不在正则表达式中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8086529/

相关文章:

c# - 用于查找被 {{ }} 包围的单词的正则表达式

正则表达式提取 bash shell 中引号中的所有内容?

JavaScript 正则表达式验证

java - 在 JUnit 中断言正则表达式匹配

C# 方法重载解析不选择具体的泛型覆盖

c# - 使用 Paypal 的 IPN、C# 连接数据库时出现问题

c# - 在 .NET 中合并两个数组

java - 如何删除单词周围的字符?

regex - 正则表达式去除前导字符直到第一个遇到的数字

c# - 在 XAML 中的 View 中绑定(bind)多个 ViewModel