RegEx只匹配年份的前两位数

5cnsuln7  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(146)

我试图只匹配一年中的前两位数字,以便用FY替换。
例如:我希望2022年成为2022财年。
以下

\d+

取代了一切

\d+{2}

把我留给了FYFY
任何帮助都会受到款待。
这将被转换为Alteryx工具。
提前谢谢你。

c9qzyr3d

c9qzyr3d1#

关于您的模式:

  • 使用\d+匹配一个或多个数字,这对于年份匹配来说太宽了
  • 使用\d+{2}不是有效的表达式,因为量词+not quantifiable乘以{2}

如果要缩小年份的匹配范围,使其不只是匹配任意4位数字,则可以使匹配更具体一些:

\b(?:19|20)(\d\d)\b
  • \b防止部分字匹配的字边界
  • (?:19|20)匹配19或20
  • (\d\d)捕获组1中的2个数字
  • \b字边界

并使用捕获组$1替换

FY$1

请参见regex demo
阅读关于alteryx RegEx Tool的页面,它使用Boost RegEx。
在这种情况下,您也可以使用lookahead变体:

\b(?:19|20)(?=\d\d\b)

并替换为FY
另见regex demo

相关问题