Regex 在字符串中从右到左每隔n个字符插入一个字符?
是否有一个简单的正则表达式可以在字符串中从右向左每隔n个字符(例如2)插入一个字符,例如冒号: 例如 059->0:59 14598->1:45:98Regex 在字符串中从右到左每隔n个字符插入一个字符?,regex,Regex,是否有一个简单的正则表达式可以在字符串中从右向左每隔n个字符(例如2)插入一个字符,例如冒号: 例如 059->0:59 14598->1:45:98 34001->34:00:01如果您的环境支持,您可以使用先行检查来检查前面任意两个字符中的一个或多个,直到字符之间的任何位置的$行尾(使用\B非触发仅在单词字符之间的先行检查),并用冒号替换 \B(?=(?:..)+$) 只需使用“2*N个任意字符”的前瞻: s/(?=(?:.{2})+$)/:/g 请显示您尝试的正则表达式模式并指定正则表
34001->34:00:01如果您的环境支持,您可以使用先行检查来检查前面任意两个字符中的一个或多个,直到字符之间的任何位置的
$
行尾(使用\B
非触发仅在单词字符之间的先行检查),并用冒号替换
\B(?=(?:..)+$)
只需使用“2*N个任意字符”的前瞻:
s/(?=(?:.{2})+$)/:/g
请显示您尝试的正则表达式模式并指定正则表达式的风格。对于这种特殊情况,您可以使用一个
:
替换每个匹配项。对不起,我应该更具体一些,我使用的是Java中的String.replaceAll()方法。我该如何将这个正则表达式与这个方法一起使用?@SpamSpam我的意思是,如果它只是其中一个数字,String str=new String(“059”)->str=str.replaceAll(…)@SpamSpam是的,您可以对每个测试用例使用它。是的,这很有效。非常感谢。接受答案。