微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在C#中php(pcre)中找到的分支复位运算符(“?|”)的等价物是多少?

以下正则表达式将匹配“星期六”或“星期日”:(?((Sat)ur |(Sun))天

但是在一种情况下,反向引用1被填充,而反向引用2是空的,而在另一种情况下反之亦然.

PHP(pcre)提供了一个不错的运算符“?|”这规避了这个问题.以前的正则表达式将变成(?|(Sat)ur |(Sun))的一天.所以不会有空的反向引用.

在C#或一些解决方法中有相当的吗?

解决方法

.NET不支持分支复位操作符,但它支持命名组,它允许您重新使用组名,而不受任何限制(AFAIK没有其他风格).所以你可以使用这个:
(?:(?<abbr>Sat)ur|(?<abbr>Sun))day

…和缩写名称将存储在Match.Groups [“abbr”]中.

原文地址:https://www.jb51.cc/csharp/92784.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐