[英]Extracting days from a string Regex
我正在尝试从以下字符串中提取使用 C# 中的正则表达式组的天数,
"RRULE:FREQ=MONTHLY;UNTIL=20211126T143000Z;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1"
我是正则表达式的新手,并查看了各种网站以尝试编写表达式,到目前为止我得到的表达式如下
(?:BYDAY=)([A-Z,]*);
哪个匹配
MO,TU,WE,TH,FR;
作为一个整体,我可以在拆分中使用“,”来实现我想要的,我想知道是否有一种方法可以纯粹在正则表达式中做到这一点。
如果支持后向中的量词,您可以使用:
(?<=BYDAY=[A-Z,]*)[A-Z]+
解释
(?<=
Positive lookbehind, assert what is on the left is
BYDAY=[AZ,]*
匹配BYDAY=
后跟 0 次或多次 AZ 或,)
近距离观察[AZ]+
匹配 1+ 个字符 AZ.Net 正则表达式演示| C# 演示由 WiktorStribiżew
或者,您可以使用\G
锚来获取迭代匹配并捕获第 1 组中的值
(?:\G(?!^)|BYDAY=)([A-Z]+),?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.