所以我正在进行网络请求并阅读源代码和所有内容。 在源代码中,我需要一个特定的字符串。 来源:
RESPONSIVE.constant.user = {
id: 71723922,
name: 'Raktott',
member: false,
language: 0,
isLoggedIn: 1
};
我需要的部分是姓名:'',所以只有''中的部分 我怎么做到这一点? 我已经尝试过正则表达式htmlagilitypack等。
答案 0 :(得分:0)
考虑这个你的字符串
id: 71723922,
name: 'Raktott',
member: false,
language: 0,
isLoggedIn: 1
我将根据,
分隔符将字符串拆分为字符串数组。
string str = "id: 71723922,name: 'Raktott', member: false,language: 0,isLoggedIn: 1";
string[] arrstr = str.Split(',');
for (int i=0; i<=arrstr.Length; i++){
if(arrstr[i].Contains("name"))
{
string name = arrstr[i];
//Perform you Logic here
break;
}
}
答案 1 :(得分:0)
您可以Regex
使用lazy quantifier(*?
)来捕捉{
花括号}
之间的文字:
// Don't forget to escape full-stops!
Regex regex = new Regex( @"RESPONSIVE\.constant\.user = {(?<userParams>.*?)}", RegexOptions.ExplicitCapture | RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match match = regex.Match(pageSourceCode);
if (match.Success)
{
// Split up the values using comma
var keyValuePairs = match.Groups["userParams"].Value.Split(',');
// Split up each line using : as delimeter and clean up both sides, removing whitespace and single quote characters
var dict = keyValuePairs
.Select(kvp => kvp.Split(':'))
.ToDictionary(kvp => kvp[0].Trim(), kvp => kvp[1].Trim().Trim(new char[] { '\'' }));
// Read name
var name = dict["name"];
}