简体   繁体   English

带OR选项的字符串的Java子字符串

[英]java substring of string with OR option

Let say I have a list of strings like: 假设我有一个字符串列表,例如:

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

so in my strings sometimes I have [ and sometimes ' 所以在我的弦乐中,有时我有[有时是

and now I would like to get substrings but I don't know how to do this if I would like to cut my string in one of the two chars. 现在我想获得子字符串,但是如果我想将字符串切成两个字符之一,我不知道该怎么做。 Can anyone tell me whether that option is possible? 谁能告诉我该选项是否可行? I tried something like: 我尝试了类似的东西:

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

}

I expect to get all substrings starting from char "[" or starting from "'" in one run 我希望一次运行就能从char“ [”或从“'”开始的所有子字符串。

You can use (?<=\\[)(.*?)(?=\\]) and (?<=\\')(.*?)(?=\\') regular expressions to find the string between square brackets and single quotes. 您可以使用(?<=\\[)(.*?)(?=\\])(?<=\\')(.*?)(?=\\')正则表达式在方括号和之间找到字符串单引号。

You can take a look at this , for searching pattern in java, and this , for the regular expression. 您可以看一下this ,用于在Java中搜索模式,而this ,用于正则表达式。

That's just not how substring method works, look at docs ( https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int) ). 那不是substring方法的工作原理,请看文档( https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int) )。

Based on what you want, you can: 根据您的需求,您可以:

  1. Use RegEx to get these substrings ( https://www.tutorialspoint.com/java/java_regular_expressions.htm ) 使用RegEx来获取这些子字符串( https://www.tutorialspoint.com/java/java_regular_expressions.htm
  2. Split your string on some character, string or pattern ( https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String) ) 将您的字符串拆分为某些字符,字符串或模式( https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)
  3. Find indexes of substring you need and get it via using substring method 查找所需的子字符串索引并使用substring方法获取它

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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