正则表达式具有更精细的结果
本文关键字:结果 正则表达式 | 更新日期: 2023-09-27 18:30:31
string STR = "The Quick Brown Fox Jumps";
string PTR = "[A-Z][a-z]+ [A-Z][a-z]+";
MatchCollection MCZ = Regex.Matches( STR, PTR ) ;
if ( MCZ.Count > 0 )
{
string RTN ="";
foreach ( Match x in MCZ )
RTN += x.Value + "'n" ;
MessageBox.Show( RTN );
}
else
MessageBox.Show("Noop");
你好。。。我的结果是这样的;
The Quick
Brown Fox
但是,我想拥有;
The Quick
Quick Brown
Brown Fox
Fox Jumps
好提示,请!!
问候。
尝试: (?<=(?<v>'w+)'s+)(?<v>'w+)
我无法将直接结果链接到 regexstorm.net(因为有些括号不起作用?!?!?),但请尝试http://regexstorm.net/tester
请看表格。每场比赛包含两个组 v 的捕获。
样本:
using System;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var input = "The Quick Brown Fox Jumps";
var regex = new Regex(@"(?<=(?<v>'w+)'s+)(?<v>'w+)");
foreach (var match in regex.Matches(input).Cast<Match>())
{
var value = string.Join(" ", match.Groups["v"].Captures.Cast<Capture>().Select(x => x.Value));
Console.WriteLine(value);
}
}
}
输出将按预期进行。
正如我所说,有更好的方法可以做到这一点......
using System;
using System.Linq;
public class Test
{
public static void Main()
{
string str = "The Quick Brown Fox Jumps";
string result = "";
var tokens = str.Split(' ');
for(int i = 0; i < tokens.Length - 1; i += 1) {
result += tokens[i] + ' ' + tokens[i + 1] + "'n";
}
Console.WriteLine(result);
}
}