2
在C#中,我需要捕獲短語* | variablename | *中的變量名。C#Regex如何捕獲* |之間的所有內容和| *?
我有這個表達式:Regex regex = new Regex(@"\*\|(.*)\|\*");
在線正則表達式測試返回「VARIABLENAME」,但在C#代碼,返回* | VARIABLENAME | *,或包括明星和酒吧字符的字符串。任何人都知道我爲什麼經歷這種回報價值?
非常感謝!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace RegExTester
{
class Program
{
static void Main(string[] args)
{
String teststring = "This is a *|variablename|*";
Regex regex = new Regex(@"\*\|(.*)\|\*");
Match match = regex.Match(teststring);
Console.WriteLine(match.Value);
Console.Read();
}
}
}
//Outputs *|variablename|*, instead of variablename
感謝BoltClock!如果我有 String teststring =「這是\ * | variablename | \ *確定我的\ * | friend | \ *」; 我需要使用MatchCollection方法,還是將該方法工作? –
你需要一個MatchCollection,是的。這意味着'MatchCollection matches = regex.Matches(teststring)'。您仍然會使用集合中每個*匹配的'Group'屬性 - 只需循環它即可。 – BoltClock
非常感謝! –