我正在尝试在'-'上分割下面的字符串,但是问题是,只有在两边都有字符时,才应该在'-'上分割。
String s = "1 - 2 Foo - Bar 3 - 4 Wrong - Right"
输入法
String[0] = 1 - 2 Foo
String[1] = Bar 3 - 4 Wrong
String[2] = Right
有什么方法可以实现这一目标。
答案 0 :(得分:8)
您可以使用此正则表达式:
(?<=[a-zA-Z]) - (?=[a-zA-Z])
像这样:
s.split("(?<=[a-zA-Z]) - (?=[a-zA-Z])")
说明:
(?<=...)
是一个积极的回顾,它检查连字符前面的内容是否匹配[a-zA-Z]
,但实际上不匹配它们。 (?=...)
很相似,但是看起来 要看连字符右侧的内容是否与[a-zA-Z]
相匹配。