0 java
我试图在' - '上拆分下面的字符串,但问题是,当它的两边都有字符时,拆分应该只发生' - '.
String s = "1 - 2 Foo - Bar 3 - 4 Wrong - Right"
Run Code Online (Sandbox Code Playgroud)
Ouptut
String[0] = 1 - 2 Foo
String[1] = Bar 3 - 4 Wrong
String[2] = Right
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这一目标.
你可以使用这个正则表达式:
(?<=[a-zA-Z]) - (?=[a-zA-Z])
Run Code Online (Sandbox Code Playgroud)
像这样:
s.split("(?<=[a-zA-Z]) - (?=[a-zA-Z])")
Run Code Online (Sandbox Code Playgroud)
说明:
(?<=...)是一个积极的lookbehind,它检查连字符之前的东西是否匹配[a-zA-Z],但实际上并不匹配它们.这(?=...)是类似的,但它会向前看,看看连字符右边的内容是否匹配[a-zA-Z].