Java 区分大小写的正则表达式和匹配条件

Java 区分大小写的正则表达式和匹配条件,java,regex,Java,Regex,我试图用以下结构匹配单词: 叫名字, 或 叫名字; 也就是说,前面有call和一个空格 及 随便什么名字; 即名称+空格+ 小写也一样 我学会了?。对案件不敏感。完整的regex命令将是怎样的?这样做的诀窍是: Pattern pattern = Pattern.compile("(?:call (?i)name)|(?:(?i)name \\(.*)"); System.out.println(pattern.matcher("call NAME").matches()); System.o

我试图用以下结构匹配单词:

叫名字, 或 叫名字; 也就是说,前面有call和一个空格

随便什么名字; 即名称+空格+ 小写也一样

我学会了?。对案件不敏感。完整的regex命令将是怎样的?

这样做的诀窍是:

Pattern pattern = Pattern.compile("(?:call (?i)name)|(?:(?i)name \\(.*)");

System.out.println(pattern.matcher("call NAME").matches());
System.out.println(pattern.matcher("call name").matches());
System.out.println(pattern.matcher("CALL name").matches());
System.out.println(pattern.matcher("NAME (blablabla").matches());
System.out.println(pattern.matcher("name (blablabla").matches());
输出:


请提供一些具有预期输出的示例文本。还有,你是说?我,不是吗?您是否尝试过任何代码?名称不应匹配,但call NAME和call NAME。此外,名称blabla和名称blabla应该匹配,但是调用名称不应该匹配,对吗?我不确定我是否理解实际需求。什么是已知的,什么不是?这个对我来说没有多大意义。在任何情况下匹配名称的正则表达式都可以是?iname。但这就是你想要的,还是你想在任何案例的调用匹配时获取名称?那就可以用?我叫。*。这取决于你的数据输入。不管谁投了反对票,做个大男孩,告诉我你为什么投了反对票?
true
true
false
true
true