Java 用引号括起来的匹配模式
我正在尝试获得符合模式的组。 输入字符串等于类Java 用引号括起来的匹配模式,java,regex,Java,Regex,我正在尝试获得符合模式的组。 输入字符串等于类 'one and two!' and 'three or four five' and 'six' 我已经试过了。但是它匹配并且不在单引号内 (?:'(?:\S*)*(和|或)+(?:\S*\S*)*)+ 我想要像这样的团体 'one and two!' 'three or four five' 所有带有和|或在单引号内的字符串都应匹配。在单引号中,它可以有特殊字符和许多空格等 如何更改上面的模式?试试这个 "'.+?(\\s(and|or)\
'one and two!' and 'three or four five' and 'six'
我已经试过了。但是它匹配并且不在单引号内
(?:'(?:\S*)*(和|或)+(?:\S*\S*)*)+
我想要像这样的团体
'one and two!'
'three or four five'
所有带有和|或在单引号内的字符串都应匹配。在单引号中,它可以有特殊字符和许多空格等
如何更改上面的模式?试试这个
"'.+?(\\s(and|or)\\s).+?'"
如果单引号中没有单引号,则可以使用以下模式:
final Pattern PATTERN = Pattern.compile("('[^']+')( (and|or) )?");
然后,您将收集列表中的所有匹配项,如下所示:
final List<String> matches = new ArrayList<>();
final Matcher m = PATTERN.matcher(input);
while (m.find())
matches.add(m.group(1));
final List matches=new ArrayList();
最终匹配器m=模式匹配器(输入);
while(m.find())
匹配。添加(m组(1));
如果存在潜在的未替换的单引号,那么这在正则表达式中是不可行的。如果它们可以转义,那么就寻找一种编写高效正则表达式的技术。是否也可以嵌入单引号?嵌入单引号?你是说像这样的一和二?是的,它可以有任何特殊的特征。像“一和二”是可能的,他们甚至不会逃脱?那么你不能用regexesNope来做这件事。如果引号中没有引号,我至少可以这样做吗?我可以要求API提供商将所有内容包装在一个引号中,而文本不会有一个引号