繁体   English   中英

允许在正则表达式模式中有条件地使用分号

[英]Allow conditional usage of semicolon in regex pattern

我有以下模式:

UnallowedCharacters = @"<>\{\}" + "\"";
@"^(?<contactType>\d+):(?<contactIdentifier>[^;" + UnallowedCharacters + @"]+)(;(?<parameterName>[A-Za-z0-9_-]+)=(?<parameterValue>[^;=" + UnallowedCharacters + "]+))*$"

我需要允许在contactIdentifier部分使用分号,但仍然不能从不允许的字符中排除分号,因为以后的拆分将不再起作用。

有任何想法吗?

如果我理解了这个问题,你可以这样做:

UnallowedCharacters = @"<>{}"""; (no need to escape inside a character group)

(?<contactIdentifier>(?:[;]|[^" + UnallowedCharacters + @"])+

说明

我将<contactIdentifier>组更改为:

?<contactIdentifier>姓名

(?: (非捕获)组的开始

[;]| ';' 或者:

[^" + UnallowedCharacters + @"]一个字符不在 class

)+全组重复一次或多次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM