在String.Split()中使用regex来提取java中{和}之间的文本
我有这样一个字符串:在String.Split()中使用regex来提取java中{和}之间的文本,java,regex,string,Java,Regex,String,我有这样一个字符串: String str = ${farsiName} - {symbolName} String in = "Item(s): [item1.test],[item2.qa],[item3.production]"; Pattern p = Pattern.compile("\\[(.*?)\\]"); Matcher m = p.matcher(in); while(m.find()) { System.out.println(m.group(1)); }
String str = ${farsiName} - {symbolName}
String in = "Item(s): [item1.test],[item2.qa],[item3.production]";
Pattern p = Pattern.compile("\\[(.*?)\\]");
Matcher m = p.matcher(in);
while(m.find()) {
System.out.println(m.group(1));
}
我想使用split方法用regex从这个字符串中查找并提取farsiName&symbolName。
我找到了这样的解决方案:
String str = ${farsiName} - {symbolName}
String in = "Item(s): [item1.test],[item2.qa],[item3.production]";
Pattern p = Pattern.compile("\\[(.*?)\\]");
Matcher m = p.matcher(in);
while(m.find()) {
System.out.println(m.group(1));
}
但我想知道,我可以在String类中对split方法使用类似的正则表达式吗?您的思路是正确的。只需更换括号和字符串
String n ="${farsiName} - {symbolName}";
Pattern p = Pattern.compile("\\{(.*?)\\}");
Matcher m = p.matcher(n);
while(m.find()) {
System.out.println(m.group(1));
}
注意:我不建议这样做。正则表达式将更加通用和强大
String n ="${farsiName} - {symbolName}";
String s[] = n.split(" - ");
for(String x : s){
System.out.println(x.replace("$", "").replace("{", "").replace("}", ""));
}
使用此代码。它会工作。但我建议使用regex。是的,您可以使用相同的逻辑。谢谢,我这样做;但我在寻找分割法的相同方法。@GLinBoy为什么要这样做?这也是一个完美的解决方案。@Shashwat出于好奇@格林博伊贴出了答案。