[英]Splitting string only at the first matching regex position
我有以下字符串:“ 123456-A,Bcd,789101-E,Fgh”
我希望将其拆分为:“ 123456-A,Bcd”和“ 789101-E,Fgh”。 我该如何实现? 我应该使用什么regex
和split
表达式?
我看到我可以使用.matches(".*[az],\\\\s[0-9].*")
在“ Bcd”之后找到逗号,但是如何仅在该逗号处拆分字符串? .split(",\\\\s")
在所有出现的逗号处分割,后跟空格...
我使用JAVA 1.6。
您可以使用逗号分隔,后跟0+空格,6位数字,空格和连字符:
String[] result = s.split(",\\s*(?=\\d{6} -)");
参见regex演示 。
图案细节
,
-逗号 \\s*
-0+空格字符 (?=\\\\d{6} -)
-正向超前查询(一种非消耗性模式,它所匹配的内容将不属于结果),需要6位数字,后跟一个空格,并且-
立即位于当前位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.