嗨 我有这种字符串,我想获得 喜欢toto100 成为toto 100 感谢您的帮助
最佳答案
搜索
(?<=[a-zA-Z])(?=[0-9])
并将其替换为空格。如果您还想拆分 100toto
,则使用
(?<=[a-zA-Z])(?=[0-9])|(?<=[0-9])(?=[a-zA-Z])
此正则表达式正在查找紧接字母之后和数字之前的位置。由于它不必匹配、保留和替换任何实际文本,而只是在两个字符之间的位置插入一个空格,因此速度相当快。
正如 tchrist 所建议的,当然最好不要将自己限制为 ASCII 字母和数字,特别是如果您使用的语言在正则表达式中支持 Unicode(如 Java)。
所以第二个正则表达式看起来像
(?<=\p{L])(?=\p{N})|(?<=\p{N})(?=\p{L})
在 Java 中:
String result = subject.replaceAll("(?<=\\p{L])(?=\\p{N})|(?<=\\p{N})(?=\\p{L})", " ");
关于java - 正则表达式 在字符串中的字母和数字之间添加空格字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4177801/