public static string GetInputValueByName(string Code,string inputname)
{
string name,value = "";
string str = "";
string code = @"<Form>
<input type='hidden' value='1' name='rs_permission'/>
<input type='hidden' value='12298802,12537683,12815699' name='apn'/>
<input type='text' value='abcdefg' name='d_name' >
</Form>"; Regex reg = new Regex(这里的正则怎么写?, RegexOptions.IgnoreCase); MatchCollection mc = reg.Matches(str);
foreach (Match m in mc)
{
name = m.Groups["name"].ToString();
value = m.Groups["value"].ToString();
if (name.Equals(inputname))
str = value;
} return str;
}
public string FindValueByName(string str, string inputname)
{
string pattern = "(<input.*?name='(?<Name>[^']+?)'.*?value='(?<Value>[^']+?)'.*?>)|(<input.*?value='(?<Value>[^']+?)'.*?name='(?<Name>[^']+?)'.*?>)";
Match match = Regex.Match(str, pattern);
while (match.Success)
{
string name = match.Groups["Name"].ToString();
string value = match.Groups["Value"].ToString();
if (name == inputname)
return value;
match = match.NextMatch();
}
return string.Empty;
}
string code = @"<Form>
<input type='hidden' value='1' name='rs_permission'/>
<input type='hidden' value='12298802,12537683,12815699' name='apn'/>
<input type='text' value='abcdefg' name='d_name' >
</Form>";
Regex reg = new Regex(@"(?is)<input\b(?:(?!value=).)*value='(?<value>[^']*)'\s+name='(?<name>[^']*)'[^>]*>");
MatchCollection mc = reg.Matches(code);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups["name"].Value + "\n";
richTextBox2.Text += m.Groups["value"].Value + "\n";
}如果情况考虑复杂点,value和name可能还有其它属性,value=和name=后可能接“'”,“"”或直接接属性值,那么
string code = @"<Form>
<input type='hidden' value='1' name='rs_permission'/>
<input type='hidden' value='12298802,12537683,12815699' name='apn'/>
<input type='text' value='abcdefg' name='d_name' >
</Form>";
Regex reg = new Regex(@"(?is)<input\b(?:(?!value=).)*value=(['""]?)(?<value>(?:(?!\1).)*)(?:(?!name=).)*name=(['""]?)(?<name>(?:(?!\2).)*)[^>]*>");
MatchCollection mc = reg.Matches(code);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups["name"].Value + "\n";
richTextBox2.Text += m.Groups["value"].Value + "\n";
}
如果顺序不一定,那会麻烦些string code = @"<Form>
<input type='hidden' value='1' name='rs_permission'/>
<input type='hidden' value='12298802,12537683,12815699' name='apn'/>
<input type='text' value='abcdefg' name='d_name' >
</Form>";
Regex reg = new Regex(@"(?is)<input\b(?=(?:(?!value=|/?input).)*value=(['""]?)(?<value>(?:(?!\1).)*)\1)(?:(?!name=).)*name=(['""]?)(?<name>(?:(?!\2).)*)\2[^>]*>");
MatchCollection mc = reg.Matches(code);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups["name"].Value + "\n";
richTextBox2.Text += m.Groups["value"].Value + "\n";
}
看帖一定要回的,分也一定要接的。^_^
****************************************************************[/align]