我有这个字符串: “123456 - A,Bcd,789101 - E,Fgh”
我希望它分为:“123456 - A,Bcd”和“789101 - E,Fgh”。
我怎样才能做到这一点?我应该使用哪些regex
和split
表达式?
我看到我可以使用.matches(".*[a-z],\\s[0-9].*")
在“Bcd”之后找到逗号
但是如何只用逗号分割字符串呢? .split(",\\s")
分裂所有出现的逗号,后跟空格......
我使用JAVA 1.6。
答案 0 :(得分:4)
您可以在逗号后拆分0+空格,6位数字,空格和连字符:
String[] result = s.split(",\\s*(?=\\d{6} -)");
请参阅regex demo。
模式详情
,
- 逗号\s*
- 0+空白字符(?=\\d{6} -)
- 一个积极的前瞻(非消费模式,它匹配的内容不会是结果的一部分),需要6个数字后面跟一个空格,-
紧靠右边当前位置。