繁体   English   中英

仅在第一个匹配的正则表达式位置分割字符串

[英]Splitting string only at the first matching regex position

我有以下字符串:“ 123456-A,Bcd,789101-E,Fgh”

我希望将其拆分为:“ 123456-A,Bcd”和“ 789101-E,Fgh”。 我该如何实现? 我应该使用什么regexsplit表达式?

我看到我可以使用.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM