我想从特定代码中提取一个数字......
这是代码
":true,"itemId":"202190176821","defaultWatchCount":23,"isUserSignedIn":true,"isItemEnded"
我想以编程方式提取23号码。
我使用了正则表达式,但没有显示任何内容。
这是代码。
string number = String.Empty; // default value if not found
Match m = Regex.Match(html, @"defaultWatchCount"":""([0-9]+?)");
if (m.Success)
number = m.Groups[1].Value;
但它没有显示任何内容。
你能告诉我我的代码错误吗?
答案 0 :(得分:0)
这是正则表达式,请检查here:
Match m = Regex.Match(html, @"""defaultWatchCount"":(\d+)");
您的输入看起来像JSON,您应该使用JSON解析器,如果确实如此。
答案 1 :(得分:0)
您可以在documentation中使用可变长度的lookbehinds,因此无论冒号:
字符周围是否有空格,以下正则表达式都适用于您。此方法也不需要使用捕获组:
(?<="defaultWatchCount"\s*:\s*)\d+
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?<=""defaultWatchCount""\s*:\s*)\d+";
string input = @""":true,""itemId"":""202190176821"",""defaultWatchCount"":23,""isUserSignedIn"":true,""isItemEnded""";
foreach (Match m in Regex.Matches(input, pattern))
{
Console.WriteLine(m.Value);
}
}
}