java - 正则表达式 在字符串中的字母和数字之间添加空格字符

标签 java regex

嗨 我有这种字符串,我想获得 喜欢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/

相关文章:

java - 如何通过 JNDI 检索 LDAP 密码

java - 如何在 java 中创建自定义光标图像

Python 2.6.1 (OS X 10.6.8) re.sub() 下划线组中的行为?

正则表达式匹配字符集

python - 正则表达式查找从行尾开始的第一个匹配项

javascript - 如何使用正则表达式在多行上选择包含任意字符的值?

regex -\p{L}、\p{Lu} 和\p{Ll} 的 Unicode 范围

java - JBoss7 客户端证书认证 : Ciper suite in SSL Session is SSL_NULL_WITH_NULL_NULL

java - 使用 Java 从列表中选择特定对象

java - 为apache QPID创建 keystore 和信任库