繁体   English   中英

从字符串正则表达式中提取天数

[英]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.

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