繁体   English   中英

使用正则表达式从字符串中解析字符串

[英]Parse String from string with Regex

我想从正则Regex的字符串中获取字符串:

Regex regex = new Regex(".signature=(.*)(", RegexOptions.Singleline);
var v = regex.Match(html);
string funcName = v.Groups[1].Value;

这是一个HTML字符串:

c&&(b.signature=hj(c));

我想获得hj ,当我运行它时,出现此exception

parsing ".signature=(.*)(" - Not enough )'s.

您必须转义特殊字符。 用这个:

Regex regex = new Regex(@"\.signature=(.*)\(", RegexOptions.Singleline);
var v = regex.Match(html);
string funcName = v.Result("$1");

您可以在正则表达式中找到有关转义特殊字符的很好的解释(第二段): http : //www.regular-expressions.info/characters.html

编辑:

如果您在整个html页面中搜索此特定功能,则会遇到问题,这是因为.*贪婪,这意味着它尝试获取尽可能多的可能性(有关此内容的详细说明,请参见http:// www .regular-expressions.info / repeat.html (第3段)

更好的方法是:

Regex regex = new Regex(@"\.signature=([^\(]+)\(", RegexOptions.Singleline);
var v = regex.Match(html);
string funcName = v.Result("$1");

[^\\(]+搜索至少包含1个字符的字符串,且不包含(

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM