我可以使用split()函数从短语中提取字符串,并使用subphrases作为分隔符吗?例如,我有一个短语“强制字符串 - 任何string1 - 任何string2”。如何将带有分隔符的“Any string1”提取为“强制字符串”和“[a-zA-Z]”
这就是我试图提取的方式:
String str="Mandatory string - Any string1 - Any string2";
String[] result= str.split("Mandatory\\string\\s-\\s|\\s-\\s[a-zA-Z]+");
此代码的结果是
result = ["Mandatory string","ny string1","ny string2"]
但希望是:
result = ["Any string1"]
可以感谢一些帮助,谢谢。
答案 0 :(得分:1)
首先,这里有一个拼写错误:
Mandatory\\string
这应该是
Mandatory\\sstring
无论如何,我要么使用“ - ”作为分隔符并获得第二个标记:
str.split(" - ")[1] // TODO: prod version should do bounds checking etc
或完全使用不同的工具,可能是与以下正则表达式匹配的正则表达式:
"Mandatory string - (.*) - .*"
带括号的捕获组将为您提供您所追求的字符串。
答案 1 :(得分:1)
String[] result= str.split("Mandatory\\s(1)string\\s-\\s|\\s-\\s[a-zA-Z\\s(2)]+");
你刚忘了位置(1)的“s” 位置(2)
应该有一个“\\ s”试试这一行:
String[] result= str.split("Mandatory\\sstring\\s-\\s|\\s-\\s[a-zA-Z\\s]+");
答案 2 :(得分:0)
如果您的输入字符串有明确的格式,请将其拆分,然后使用所需的部分:
String[] resultArray = str.split(" - ");
String whatYouWant = resultArray[1];
答案 3 :(得分:0)
为什么不
String[] result = str.split(" - ");
return result.length < 2 ? "" : result[1];