Java-拆分字符串,为字母数字

Java-拆分字符串,为字母数字,第1张

Java-拆分字符串,为字母数字

试试这个正则表达式:

"((?<=[a-zA-Z])(?=[0-9]))|((?<=[0-9])(?=[a-zA-Z]))"

这是一个正在运行的示例:http :
//ideone.com/c02rmM

{    ...    String someString = "CC23QQ21HD32";    String regex = "((?<=[a-zA-Z])(?=[0-9]))|((?<=[0-9])(?=[a-zA-Z]))";    System.out.println(Arrays.asList(someString.split(regex)));    //outputs [CC, 23, QQ, 21, HD, 32]    ...}

正则表达式使用 前瞻性

(?=ValueToMatch)
回头看
(?<=ValueToMatch)

它的前半部分(在|之前)问:“上一个字符是字母

(?<=[a-zA-Z])
吗?下一个字符是数字
(?=[0-9])
吗?”
如果两者都为真,则将字符串与正则表达式匹配。

该正则表达式的后半部分正相反。它会问:“前一个字符是数字

(?<=[0-9])
吗?下一个字符是字母吗?
(?=[a-zA-Z])
”,如果两个都是正确的,它将再次匹配

通常,split()会删除正则表达式匹配的字符。即使对于此正则表达式也是如此。但是,由于正则表达式与0宽前瞻匹配,因此不会删除您要查找的实际字符。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5565457.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存