簡體   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