使用正则表达式将连字符插入长度受限的字符串中

问题描述 投票:0回答:1

在Swift项目中,我有一些正则表达式,目前它确保输入只能是10个字符长:

"^[\\da-zA-Z]{10,10}$"

我需要稍微调整一下,以便它正在处理的字符串具有以下格式:

#####-####

即在第五个字符后插入一个字符。

到目前为止,我已经尝试将我拥有的内容与其他正则表达式结合使用,但这是不正确的,我无法弄清楚我需要做些什么来使这项工作:

"^[\\da-zA-Z]{10,10}$(.{5}),$1-$2"
swift regex
1个回答
0
投票

如果您有10个字符的字符串,并且要替换第六个字符之后的字符,则可以使用2个捕获组。

捕获第一组中的前5个字符,然后匹配要替换的第六个字符并捕获第二组中的后4个字符。

^([\\da-zA-Z]{5})[\\da-zA-Z]([\\da-zA-Z]{4})$

regex demo

在替换使用中,$1-$2将按照您想要的样式#####-####总共为10个字符

{10,10}可以写为{10}

© www.soinside.com 2019 - 2024. All rights reserved.