在Groovy和Java的正则表达式中,你可以使用以下的正则表达式来提取单引号和双引号中的内容,但是只匹配成对出现的引号:

对于单引号:

String regex = "'(.*?)'";

对于双引号:

String regex = "\"(.*?)\"";

这个正则表达式使用了非贪婪模式(.*?),这意味着它会尽可能少地匹配字符,以确保只匹配到一对引号中的内容。你可以使用Matcher类和find()方法来查找和提取匹配的内容:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

String input = "hello'world'";

String regex = "'(.*?)'";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);

if (matcher.find()) {
    String match = matcher.group(1);
    System.out.println(match);
}

这将输出:hello'world',只匹配到了一对单引号中的内容。

如果你想同时匹配单引号和双引号,可以使用以下的正则表达式:

String regex = "[\"']([^\"']*)[\"']";

这个正则表达式使用了字符类[\"']来匹配单引号或双引号,然后使用了[^\"']*来匹配除了引号之外的任意字符,这样可以确保只匹配到引号中的内容。同样,你可以使用Matcher类和find()方法来提取匹配的内容。

希望这可以帮助到你

groovy、java 正则中怎么提取单引号、双引号中的内容?但是必须要成对出现才匹配比如有字符串helloworld只能匹配到helloworld而不会匹配到单引号和双引号混合之间的内容匹配出来比如hello和world但是不包括单、双引号本身

原文地址: https://www.cveoy.top/t/topic/iqJZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录