我试图只匹配一年中的前两位数字,以便用FY替换。例如:我希望2022年成为2022财年。以下
\d+
取代了一切
\d+{2}
把我留给了FYFY任何帮助都会受到款待。这将被转换为Alteryx工具。提前谢谢你。
c9qzyr3d1#
关于您的模式:
+
{2}
如果要缩小年份的匹配范围,使其不只是匹配任意4位数字,则可以使匹配更具体一些:
\b(?:19|20)(\d\d)\b
\b
(?:19|20)
(\d\d)
并使用捕获组$1替换
$1
FY$1
请参见regex demo。阅读关于alteryx RegEx Tool的页面,它使用Boost RegEx。在这种情况下,您也可以使用lookahead变体:
\b(?:19|20)(?=\d\d\b)
并替换为FY另见regex demo。
FY
1条答案
按热度按时间c9qzyr3d1#
关于您的模式:
\d+
匹配一个或多个数字,这对于年份匹配来说太宽了\d+{2}
不是有效的表达式,因为量词+
是not quantifiable乘以{2}
如果要缩小年份的匹配范围,使其不只是匹配任意4位数字,则可以使匹配更具体一些:
\b
防止部分字匹配的字边界(?:19|20)
匹配19或20(\d\d)
捕获组1中的2个数字\b
字边界并使用捕获组
$1
替换请参见regex demo。
阅读关于alteryx RegEx Tool的页面,它使用Boost RegEx。
在这种情况下,您也可以使用lookahead变体:
并替换为
FY
另见regex demo。