java正则表达式(java字符串)
从这个->承包商:“嗨,这是“保罗”,你好吗?”客户:“嗨……”“嗨,这是“保罗”,你好吗 Java支持,所以香草正则表达式:java正则表达式(java字符串),java,regex,string,Java,Regex,String,从这个->承包商:“嗨,这是“保罗”,你好吗?”客户:“嗨……”“嗨,这是“保罗”,你好吗 Java支持,所以香草正则表达式: ”(.*?(?Java支持,所以香草正则表达式: “(.*?(?regexp应该是这样:”(?:\\.[^“\\])*“ 它使用非捕获组?:,匹配任何字符,或不在双引号和反斜杠列表中的单个字符。正则表达式应如下所示:“(?:\.\124;[^”\])*” var text1 = "contractor:\"Hi, this is \\\"
”(.*?(?Java支持,所以香草正则表达式:
“(.*?(?regexp应该是这样:”(?:\\.[^“\\])*“
它使用非捕获组?:
,匹配任何字符
,或不在双引号和反斜杠列表中的单个字符。正则表达式应如下所示:“(?:\.\124;[^”\])*”
var text1 = "contractor:\"Hi, this is \\\"Paul\\\", how are you?\" client:\"Hi ....\" <-";
var regExWithQuotation = "contractor:(.+\".+\".+) client:";
Pattern p = Pattern.compile(regExWithQuotation);
var m = p.matcher(text1);
;
if (m.find()) {
var res = m.group(1);
System.out.println(res);
}
var regExWithoutQuotation = "contractor:\"(.+\".+\".+)?\" client:";
p = Pattern.compile(regExWithoutQuotation);
m = p.matcher(text1);
if (m.find()) {
var res = m.group(1);
System.out.println(res);
}
它使用非捕获组?:
,匹配任何字符
,或不在双引号和反斜杠列表中的单个字符。var text1=“承包商:\”你好,这是\\\\“保罗\\”,你好吗?“客户:\”你好……“var text1=“承包商:\”你好,这是\\\“保罗\\”,你好吗?“客户:\”你好……“你可以使用正则表达式,(?你可以使用正则表达式,(?你必须使用正则表达式吗?你可以通过使用.indexOf()
和.substring()
来去除关键字周围的冗余文本,非常简单-你需要在一对双引号内获取文本,即“要匹配的文本”
,并且此文本可能包含其他双引号,前面有反斜杠“
?@AlexRudenko。是的,Alex,我编辑此问题是因为编辑器没有跳过内部引号。是否必须使用正则表达式?您可以使用.indexOf()
和.substring()去掉关键字周围的多余文本
非常简短-您需要在一对双引号内获取文本,即“要匹配的文本”
,并且此文本可能包含其他双引号,前面带有反斜杠\”
?@AlexRudenko。是的,Alex,我编辑此问题,因为编辑器不会跳过包含最后一个“Hi…”的内部引号虽然.OP不希望这样。是的,我认为应该进行第一次匹配,至少在OP的示例中是这样。使用在线regexp编辑器可以很好地工作,但在java代码中不会包含最终的“Hi…”虽然.OP不希望这样。是的,我认为应该进行第一次匹配,至少在OP的示例中是这样。使用在线regexp编辑器可以很好地工作,但不适用于java代码不是OP的要求。不是OP的要求。
var text1 = "contractor:\"Hi, this is \\\"Paul\\\", how are you?\" client:\"Hi ....\" <-";
var regExWithQuotation = "contractor:(.+\".+\".+) client:";
Pattern p = Pattern.compile(regExWithQuotation);
var m = p.matcher(text1);
;
if (m.find()) {
var res = m.group(1);
System.out.println(res);
}
var regExWithoutQuotation = "contractor:\"(.+\".+\".+)?\" client:";
p = Pattern.compile(regExWithoutQuotation);
m = p.matcher(text1);
if (m.find()) {
var res = m.group(1);
System.out.println(res);
}
Hi, this is \"Paul\", how are you?