Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# <;Regex>;尝试获取输入和选择数的所有名称和值_C#_Html_Regex_Input_Match - Fatal编程技术网

C# <;Regex>;尝试获取输入和选择数的所有名称和值

C# <;Regex>;尝试获取输入和选择数的所有名称和值,c#,html,regex,input,match,C#,Html,Regex,Input,Match,我有一个包含大量input和selecthtml元素的表单。问题是,每个输入和选择都有一个名称,但并非所有输入和选择都有值(默认情况下选择),并且至少有一个选择元素的名称属性中没有“”引号 我愿意用一个表达式得到所有的名称和值 这是表格(没有\n和\r符号): 这是他的我的密码: MatchCollection mtches; mtches=Regex.Matches(registerForm,“(?:(?:)[^>]*?(?:value=\”(?*?)\”)[^>]*?>”; 我成功地获得

我有一个包含大量
input
select
html元素的表单。问题是,每个输入和选择都有一个名称,但并非所有输入和选择都有值(默认情况下选择),并且至少有一个选择元素的名称属性中没有“
引号

我愿意用一个表达式得到所有的名称和值

这是表格(没有
\n
\r
符号):

这是他的我的密码:

MatchCollection mtches;
mtches=Regex.Matches(registerForm,“(?:(?:)[^>]*?(?:value=\”(?*?)\”)[^>]*?>”;

我成功地获得了每个输入和选择的所有名称,但问题是它没有提取值匹配项。

不要使用正则表达式解析html。下面是一个处于疯狂边缘的SO成员,与主题相关:


为自己找到一个喜欢且易于使用的html解析器。

不要使用正则表达式来解析html。下面是一个与主题相关的处于疯狂边缘的SO成员:


给自己找一个喜欢且易于使用的html解析器。

我想向新手或没有经验的程序员指出,他们的直觉是正确的……使用合适的html解析器要容易得多。我想补充一点,如果你不得不问如何用正则表达式解析html,那么你对正则表达式的了解还不足以解析html。这就像问如何系好滑雪板,这样你就可以参加奥运会滑雪比赛。理论上,你不能用正则表达式完全解析html,因为正则表达式是一种常规语言,html是一种不规则的语言。我不想深入探讨这一点,因为语言讨论太多了。只需知道少数几个正则表达式引擎允许你解析或几乎解析html很少,而且它们不再完全是常规的。我想说这是我第一次使用Regex,你是对的,这不是解析html的好工具。我想向新的或没有经验的程序员指出,他们的直觉是正确的……使用一个合适的html解析器要容易得多。我想补充一点如果你要问如何用正则表达式解析HTML,那么你对正则表达式的了解还不足以解析HTML。这就像问如何系上滑雪板,以便参加奥运会滑雪跳跃。理论上,你不能用正则表达式完全解析HTML,因为正则表达式是一种规则语言,HTML是不规则的。我不想深入探讨这个问题ce语言讨论非常广泛。只需知道,允许您解析或几乎解析html的正则表达式引擎非常少,它们不再完全是正则表达式。我想说,这是我第一次使用正则表达式,您是对的,这不是解析html的好工具。value属性可以合法地位于n之前ame属性。单引号是双引号的合法替代品。标记/属性标记可能包含大小写混合(并不总是合法的,但浏览器不会抱怨)。白色标记可能出现在标记之间(例如
name='firstname'
)。换行符可能出现在属性值中(
*
默认情况下不匹配换行符).
name
value
是可选属性。使用正则表达式有很多问题,因此更容易使用解析器。value属性可以合法地位于name属性之前。单引号是双引号的合法替代。标记/属性标记可能包含大小写混合(并不总是合法的,但浏览器不会抱怨)。Whitepsace可能出现在令牌之间(例如,
name='firstname'
)。换行符可能出现在属性值中(
*
默认情况下与换行符不匹配).
name
value
是可选属性。使用regex有很多问题,使用解析器更容易。