我正在尝试匹配*
中的id=resultsStats>*<nobr>
来提取中间位。
这将匹配例如
id=resultsStats>3<nobr>
id=resultsStats>anything<nobr>
所以我可以提取中间的“3”或“任何东西” 我如何在.NET正则表达式中执行此操作?
答案 0 :(得分:3)
(?<=id=resultsStats>).+?(?=<nobr>)
如果内容是可选的而非必需的,请使用*
代替+
。
使用示例(F#):
open System.Text.RegularExpressions
let tryFindResultsStats input =
let m = Regex.Match (input,
"(?<=id=resultsStats>).+?(?=<nobr>)",
RegexOptions.Singleline)
if m.Success then Some m.Value else None
答案 1 :(得分:0)
我不是正则表达式专家,但这样的事情可能有用:
@"\>\*{1}\<"
这意味着“匹配lt / gt字符之间的单个星号”。您只需要确保转义星号,因为它在正则表达式中具有特殊含义。
希望这有帮助!
答案 2 :(得分:0)
如果您想要捕获*
,那么您需要使用反斜杠来逃避它。请注意,如果您在字符串中执行此操作,则最安全的做法是转义反斜杠(尽管技术上\*
无效并且可以正常工作)
"\\*"
答案 3 :(得分:0)
试试这个:
using System;
using System.Text.RegularExpressions;
namespace SO6312611
{
class Program
{
static void Main()
{
string input = "id=resultsStats>anything<nobr>";
Regex r = new Regex("id=resultsStats>(?<data>[^<]*)<nobr>");
Match m = r.Match(input);
Console.WriteLine("Matched: >{0}<", m.Groups["data"]);
}
}
}