我想匹配五位邮政编码或九位邮政编码。我想在替换字符串中添加一个连字符,如果有九个数字,无论是否有一个开头。
我使用^(\d{5})-?(\d{4})?$
进行搜索,$1-$2
进行替换。
如果我从12345
开始,我会回来12345-
。我不想要尾随连字符。
有没有办法在替换字符串中指定只有在$ 2不为空时才显示连字符?
有没有办法在搜索字符串中插入连字符,即使没有开头的连字符,所以我可以将它从替换字符串中排除?
谢谢!
答案 0 :(得分:1)
如果我理解得很好,那似乎是一个错误的问题。
根据您的模式,五位数字原则上不能包含连字符,九位数字可能在第五位数后面有连字符。
因此,要为所有九位数字添加连字符,您只需要匹配没有连字符的九位数字,所有其他情况都可以忽略,不是吗?
搜索:^([0-9]{5})([0-9]{4})$
替换:$1-$2