gpt4 book ai didi

java - 使用正则表达式从 Java 中的引号中提取两个字符串?

转载 作者:行者123 更新时间:2023-11-29 08:15:17 25 4
gpt4 key购买 nike

我是使用模式的新手,在互联网上到处寻找对这个问题的解释。

假设我有一个字符串:String info = "Data I need to extract is 'here' and 'also here'";

我将如何提取单词:

here
also here

没有使用模式的单引号?

这就是我目前所拥有的......

Pattern p = Pattern.compile("(?<=\').*(?=\')");

但它返回 ( here and 'also here ) 减去括号,那只是为了查看。它会跳过第二条数据并直接转到最后一条引述...

谢谢!

编辑:

谢谢大家的回复!怎样才能改变模式,使此处 存储在 matcher.group(1) 中,也此处 存储在 matcher.group(2) 中?出于不同的原因,我需要这些值,将它们从一组中分离出来似乎效率低下......

最佳答案

尝试让你的正则表达式是非贪婪的:

Pattern p = Pattern.compile("(?<=')(.*?)(?=')");

编辑:

这是行不通的。它给出了以下匹配项:

here
and
also here

这是因为前瞻/后视不消耗'

要解决此问题,请使用正则表达式:

Pattern p = Pattern.compile("'(.*?)'");

甚至更好(更快):

Pattern p = Pattern.compile("'([^']*)'");

关于java - 使用正则表达式从 Java 中的引号中提取两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5283557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com