为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

浮云间 2019-08-27 17:07:13
使用Java使用正则表达式查找更大字符串的子字符串如果我有这样的字符串:FOO[BAR]我需要一种通用的方法来从字符串中获取“BAR”字符串,这样无论方括号之间的字符串是什么,它都能够获得字符串。例如FOO[DOG] = DOG FOO[CAT] = CAT
查看完整描述

3 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

你应该能够使用非贪婪的量词,特别是* ?. 你可能想要以下内容:

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"}


查看完整回答
反对 回复 2019-08-27
?
富国沪深

TA贡献1790条经验 获得超9个赞

非正则表达方式:

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(']'));


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 648 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信