java - 正则表达式不起作用

标签 java android regex

我有字符串正则表达式
“product_default_shipping_cost:\['(.*)'”

和字符串

"product_sale_price:['19.99'], product_default_shipping_cost:['1.99'], product_type:['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));
   }
}

但我有 1.99'], product_type:['Newegg'] 奇怪的是,它的正则表达式在 python 和 SWIFT 中完美运行,但在 java 中却不行。我不能改变这个规则。可能是什么问题以及如何解决?

P.S 我真的不能改变这个规则,它需要动态

最佳答案

尝试将其更改为:

product_default_shipping_cost:\['(.*?)'

.*? 是惰性的,只会尝试匹配第一个 '

关于java - 正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33309508/

相关文章:

java - 如何用Java加载海量数据文件?还有比哈希表更好的结构吗?

android - CoroutineScope(job+Dispatchers.Main) 如何在主/UI 线程上运行?

javascript - 在数组中查找多个正则表达式

java - 谷歌地图 fragment 滚动和拖动生涩

java - 学习Java——制作一个简单的猜谜游戏

java - 在 Asynctask 的 onPostExecute() 方法中更改 fragment

android 防止在 dialog.show 上显示键盘

regex - 在 Ocaml 中匹配 z1 或 z2 的正则表达式

regex - 使用 htaccess 添加 # 符号并重定向到 url

java - Spring xml 文件中引用的 bean 范围冲突