正则表达式模式,用于将不同的字符串作为一组获取

时间:2017-07-07 09:25:24

标签: regex c#-4.0 regex-group

我有一个这样的字符串:

var stringToBeMatched = @"S14XV15011.MAXCV_MAXCV = 2323 /m BVASL /d {A1d} /t 2009.08.23 12:01:47 /a dfsd-df/c Imported from: HV2108C2; dfddf-er-author: TVI";
上面字符串中的

/ d标签可以包含以下任何值:

a. /d MBX-JA-DVQ-1811
b. /d Bvala_Mana-CVw.xls
c. /d {A1dq}
d. /d MBX-JA-DVQ-1811 Control valves.pdf
e. /d MBEM306-0005 Data sheet 21P0001A_B_C
f. /d MBA-M30-PE-012-022 2.trinan sep.

我使用下面的图案来匹配它们但只有选项b&在这里得到满意:

var patternToCompare = @"(\{*(?<DocRef>(((\S\s*)+\.[a-zA-Z]+))|(\S\s*)+)\}*)";

如果我在开始时将\ w +添加为OR选项,则它匹配上面的选项c但不匹配其他选项。请建议最佳模式以匹配以上所有选项。

1 个答案:

答案 0 :(得分:0)

你的问题听起来模糊而复杂。没有更多的例子,它只是猜测工作。但这将匹配所有\ d项目

(^(MB)(A|X|EM).+)|({\A1.+})|(Bvala+.+\.xls)