带有OR选项的字符串的java子串

问题描述 投票:0回答:2

假设我有一个字符串列表,如:

List myList = new ArrayList();
myList.add("person [something]");
myList.add("person 'something'");

所以在我的字符串中有时候我[有时候]

现在我想得到子串,但如果我想在两个字符中的一个字符串中剪切字符串,我不知道该怎么做。谁能告诉我这个选项是否可行?我尝试过类似的东西:

List finalOne = new ArrayList();
for(String ss: myList){
finalOne.add(ss.substring("[" || "'" ))

}

我希望所有子串从char“[”开始或从“'”开始一次运行

java
2个回答
3
投票

您可以使用(?<=\[)(.*?)(?=\])(?<=\')(.*?)(?=\')正则表达式来查找方括号和单引号之间的字符串。

您可以查看this,用于搜索java中的模式,以及this,用于正则表达式。


0
投票

这不是substring方法的工作方式,请查看docs(https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int))。

根据您的需要,您可以:

  1. 使用RegEx获取这些子串(https://www.tutorialspoint.com/java/java_regular_expressions.htm
  2. 将字符串拆分为某些字符,字符串或模式(https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)
  3. 查找所需子字符串的索引,并使用substring方法获取它
© www.soinside.com 2019 - 2024. All rights reserved.