使用Java使用正则表达式查找更大字符串的子字符串

使用Java使用正则表达式查找更大字符串的子字符串

如果我有这样的字符串:

FOO[BAR]

我需要一种通用的方法来从字符串中获取“BAR”字符串,这样无论方括号之间的字符串是什么,它都能够获得字符串。

例如

FOO[DOG] = DOG
FOO[CAT] = CAT


浮云间
浏览 701回答 3
3回答

侃侃无极

你应该能够使用非贪婪的量词,特别是* ?. 你可能想要以下内容:Pattern MY_PATTERN = Pattern.compile("\\[(.*?)\\]");这将为您提供一个与您的字符串匹配的模式,并将文本放在第一组的方括号内。有关更多信息,请查看Pattern API文档。要提取字符串,您可以使用以下内容:Matcher m = MY_PATTERN.matcher("FOO[BAR]");while (m.find()) {     String s = m.group(1);     // s now contains "BAR"}

富国沪深

非正则表达方式:String input = "FOO[BAR]", extracted;extracted = input.substring(input.indexOf("["),input.indexOf("]"));或者,为了更好的性能/内存使用(感谢Hosam):String input = "FOO[BAR]", extracted;extracted = input.substring(input.indexOf('['),input.lastIndexOf(']'));
打开App,查看更多内容
随时随地看视频慕课网APP