groovy、java 正则中怎么提取单引号、双引号中的内容?但是必须要成对出现才匹配比如有字符串helloworld只能匹配到helloworld而不会匹配到单引号和双引号混合之间的内容匹配出来比如hello和world但是不包括单、双引号本身
在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()方法来提取匹配的内容。
希望这可以帮助到你
原文地址: https://www.cveoy.top/t/topic/iqJZ 著作权归作者所有。请勿转载和采集!