c#中正则表达式相对较新。努力做到这一点。
要求:
输入字符串格式:一些随机文本XXXX导致XXXX小时返工的干扰。由于XXXX中报告了一些随机文本
我需要从输入中获取所有3个XXXX。
具体例子: 某些门户网站中列出的投诉类似于 RequirementChanges 导致 <200> 返工的干扰。因此,在 Excel 中报告了一个请求。
我的正则表达式应该给出结果: RequirementChanges,200小时,Excel。
有关输入字符串的其他信息是: 只有 引起了干扰 , 返工 , 报告 将始终在输入字符串中。剩余可以是任何随机文本,并且除了这3个常量字符串之外,换行符可以介于两者之间。 我打算用c#解析这个输入字符串。请求您的输入。 THX,
答案 0 :(得分:1)
使用\s+
匹配所有类型的垂直和水平换行符。与\S+
相反的是一个或多个非空格字符。
@"\S+(?=\s+caused disturbance)|\S+\s+\S+(?=\s+of rework)|(?<=\breported in\s+)\S+"
<强>代码:强>
String input = @"Complaint listed in some portal is like below RequirementChanges caused disturbance of 200 hours of rework. Due to this there is a request reported in Excel.";
Regex rgx = new Regex(@"\S+(?=\s+caused disturbance)|\S+\s+\S+(?=\s+of rework)|(?<=\breported in\s+)\S+");
foreach (Match m in rgx.Matches(input))
Console.WriteLine(m.Groups[0].Value);