Java 不';t工作正则表达式
我有字符串正则表达式Java 不';t工作正则表达式,java,android,regex,Java,Android,Regex,我有字符串正则表达式 “产品默认运输成本:\['(.*)” 和字符串 “产品销售价格:['19.99'],产品默认运输成本:['1.99'],产品类型:['Newegg']” 我只想要1.99。 我的代码: Pattern pattern = Pattern.compile(regex_string); Matcher m = pattern.matcher(html); while (m.find()) { for (int i = 1; i <= groupCount; i++
“产品默认运输成本:\['(.*)”
和字符串
“产品销售价格:['19.99'],产品默认运输成本:['1.99'],产品类型:['Newegg']”
我只想要1.99
。
我的代码:
Pattern pattern = Pattern.compile(regex_string);
Matcher m = pattern.matcher(html);
while (m.find()) {
for (int i = 1; i <= groupCount; i++) {
Log.w(TAG,m.group(i));
}
}
Pattern=Pattern.compile(regex\u字符串);
Matcher m=pattern.Matcher(html);
while(m.find()){
对于(int i=1;i尝试将其更改为:
product_default_shipping_cost:\['(.*?)'
*?
是惰性的,只会尝试匹配第一个”
尝试将其更改为:
product_default_shipping_cost:\['(.*?)'
*?
是惰性的,只会尝试匹配第一个。
*
将匹配尽可能多的字符(是“贪婪的”)
您可以使用非格雷迪*?
,也可以限制可以匹配的内容:[^']*
*
将匹配尽可能多的字符(即“贪婪”)
您可以使用非gready*?
,或者限制可以匹配的内容:[^']*
您使用的是贪婪的正则表达式*
,尝试使用非贪婪的,也称为懒惰的,方法是添加?
,即:
product_default_shipping_cost:\['(.*?)'\]
Pattern=Pattern.compile(“产品默认发货成本:\['(.*?'\]);
Matcher m=pattern.Matcher(html);
while(m.find()){
对于(int i=1;i您正在使用一个贪婪的
regex*
,请尝试使用一个非贪婪的,也称为懒惰的
,方法是添加一个?
,即:
product_default_shipping_cost:\['(.*?)'\]
Pattern=Pattern.compile(“产品默认发货成本:\['(.*?'\]);
Matcher m=pattern.Matcher(html);
while(m.find()){
对于(int i=1;i)您不能更改正则表达式是什么意思?正则表达式字符串采用动态“奇怪的是,它的正则表达式在python和SWIFT中工作得非常好”你确信吗?根据这个测试,> >似乎不像你所描述的那样工作。无论如何,如果你不能改变正则表达式,你就不能解决你的问题,因为默认情况下<代码> *>代码>是贪婪的。我会考虑编写一个简单的解析器而不是使用正则表达式。你的意思是你不能改变正则表达式?正则表达式字符串是动态的。奇怪的是,它的正则表达式在python和SWIFT中完美地工作"你确信吗?根据这个测试,> >似乎不像你所描述的那样工作。无论如何,如果你不能改变正则表达式,你就不能解决你的问题,因为默认情况下<代码> *>代码>是贪婪的。我会考虑编写一个简单的解析器而不是使用正则表达式。我不能改变,这个字符串会变得动态。那么,我们希望为你做些什么呢?g、 你最好的办法是假装它,直到你成功并在上拆分字符串,
我无法更改,这个字符串变得动态。你希望我们为你做什么?正则表达式是错误的。你最好的办法是假装它,直到你成功并在上拆分字符串,