我需要使用正则表达式(或匹配)解析一个字符串:
SomeTextHereThatIWantToIgnore: <First Month.104.yyyy-mm-dd> <Last Day.2.yyyy-mm-dd>" OR SomeTextHereThatIWantToIgnore: "<BadVerb.104>"
我想要解析一个,两个或三个字符串(全部在一行上)。在每种情况下,我想抓住&#34;&lt;&#34;之间的所有内容。和&#34;&gt;&#34;。
所以,在第一个例子中,我想抓住&#34; First Month.104.yyyy-mm-dd&#34;和#34;去年.2yyy-mm-dd&#34;。在第二个例子中,我想要抓住&#34; BadVerb.104&#34;。
那里的任何正则表达大师可以告诉我如何实现这个目标吗?
答案 0 :(得分:1)
使用尖括号内的文本而不捕获括号的基本正则表达式是
(?<=<)[^>]+(?=>)
使用Regex.Matches
获取您的匹配。
var matches = Regex.Matches(str, @"(?<=<)[^>]+(?=>)");
答案 1 :(得分:0)
答案 2 :(得分:0)
答案 3 :(得分:0)
谢谢stribizhev,我不知道Matches系列。我最终做了一个简单的模式:
[<]([^>]+)
即寻找“&lt;”然后抓住所有不是“&gt;”的东西。匹配集合是我正在寻找的部分。我迭代了Match集合,并能够进一步解析生成的字符串并获得我想要的内容。
感谢Sami,Karthik和Walker(这看起来很简单)。