我有一个正则表达式:
string DefaultInternalUseridPattern = "^(?i)((CEU)|(APA)|(NAM))\\\\(((ADM.){0,1}([a-z]{8}))|((SVC.){0,1}((CEU.)|(APA.)|(NAM.)|(HEI.))[a-z]*))$";
我要替换最后一部分:
(CEU。)|(APA。)|(NAM。)|(HEI。)
匹配3个字母的内容,然后匹配
.
我尝试了一些方法,但没有解决我的问题。
最佳答案
捕获组会使您的表情超载,我怀疑您正在使用它们,建议删除那些多余的组。这样可以简化任何进一步的操作。
请注意,图案中的文字点必须转义。
我还看到您使用的是常规字符串文字,而逐字字符串文字更适合在C#中定义正则表达式模式。
尝试
@"^(?i)(CEU|APA|NAM)\\((ADM\.)?([a-z]{8})|(SVC\.)?([A-Z]{3}\.)[a-z]*)$"
^^^^^^^^^^
参见demo here,我将4个替代组更改为
[A-Z]{3}\.
。请注意,如果只需要在其中匹配大写字母,则需要在
(?-i:[A-Z]{3}\.)
组中使用它们。关于c# - 如何更改我的正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38853336/