我想测试字符串是否与多种模式中的一种完全匹配。
我想我可以用
做到这一点myRegex.IsMatch(testString) && myregex.Match.ToString()==testString
但这可以在正则表达式模式中完成吗?
我想测试testString与DOC
或EMAIL
完全匹配,或HTML::sometexthere
或CSV::sometexthere
。
例如,它必须与DOC::sometexthere
匹配 - 应该是'失败'
我当前的正则表达式模式为^(DOC|EMAIL)|((CSV|HTML)::.+)
,但允许禁用字符串,例如DOC::sometexthere
TIA
答案 0 :(得分:1)
以下正则表达式应该完全符合您的要求:((DOC|EMAIL)|((HTML|CSV)::.*))
在以下字符串上进行了测试:
<强>更新强> 把它改成这个,它应该完全满足你的需求。
((DOC|EMAIL)$|((HTML|CSV)::.+))
添加了$所以它不会'捕获DOC中的DOC :: sometext将*更改为+所以它应该至少包含::
后面的一个字符答案 1 :(得分:0)
您的模式是正确的,但您必须添加'字符串结尾'锚点$
:
^((DOC|EMAIL)|((CSV|HTML)::.+))$
请注意,我在括号内包含了两种可能性。