C# 正则表达式查找<;输入名称>;
我读过这篇文章: 并将该正则表达式字符串修改为:C# 正则表达式查找<;输入名称>;,c#,regex,C#,Regex,我读过这篇文章: 并将该正则表达式字符串修改为: string regexStr = "(?<1><\s*input\s+[^>]*)(?:(?<2>\sname\s*=\s*)(?<3>\w*find_me\w*)(?<4>[^>\s]*)(?<5>\3))(?<6>[^>]*>)"; var r = new Regex(regexStr, RegexOptions.IgnoreCase |
string regexStr = "(?<1><\s*input\s+[^>]*)(?:(?<2>\sname\s*=\s*)(?<3>\w*find_me\w*)(?<4>[^>\s]*)(?<5>\3))(?<6>[^>]*>)";
var r = new Regex(regexStr, RegexOptions.IgnoreCase | RegexOptions.Singleline);
string regexStr=“(?]*)(?:(?\sname\s*=\s*)(?\w*查找我\w*)(?[^>\s]*)(?\3))(?[^>]*>);
var r=新正则表达式(regexStr,RegexOptions.IgnoreCase | RegexOptions.Singleline);
我正试图找到这个:
<INPUT TYPE="hidden" NAME="FIND_ME" VALUE="">
上面提到的正则表达式找不到任何东西
如果我将:\wfind\u me\w更改为“”,则它将查找所有输入
怎么了
1) 我需要查找输入&NAME=“查找我”
2) 我不知道是否会有任何其他参数(可能有也可能没有),主要是输入&NAME=“FIND ME”。是这样做的:
(?<1><\s*input\s+[^>]*)(?:(?<2>\s*type\s*=\s*)(?<3>[""'])(?<4>[^>\s]*)(?<5>\3))(?:(?<6>\sname\s*=\s*)(?<7>[""'])(?<8>find_me)(?<9>[^>\s]*)(?<10>\3))(?<11>[^>]*>)
(?]*)(?:(?\s*type\s*=\s*)(?[“”])(?[^>\s]*)(?\3))(?:(?:(?\sname\s*=\s*)(?[“”])(?[^>\s]*)(?\3))(?[^>]*>)
我相信您知道,但是使用正则表达式解析HTML是个坏主意。您需要为您选择的语言找到一个框架,允许您解析HTMl文本。正如npinti指出的,HTMl不是一种常规语言,因此不适合使用正则表达式进行解析。至于正则表达式,您至少应该使用一个逐字字符串文字。至于解决方案:使用HtmlAgilityPack,搜索一个input
标记,该标记具有name属性,其中包含
FIND_ME`。我想这就是你需要的。