如何编写正则表达式只提取前面有某个字符串的数字?

时间:2011-01-24 23:38:21

标签: java regex

我有一个字符串(包含JSON):

[{"type":[236]} , {"type":[2]} , {"type":[95]}, {"other":[33]}, {"other":[44]}]

我想使用正则表达式仅提取TYPE数字,以便输出为以下字符串:

[236 , 2 , 95]

我该怎么做?

3 个答案:

答案 0 :(得分:6)

为什么你特别想要一个正则表达式?如果输入是JSON,我会使用JSON parser来处理这个问题。它将专门用于解析上述内容并处理边缘情况等。

答案 1 :(得分:5)

为什么不用JSON parser解析它,然后从结果结构中提取指向type个键的所有值?使用正则表达式来解析像JSON这样的定义格式的文本是go crazy的好方法。

答案 2 :(得分:3)

你可以用正则表达式来做,但更好的方法是使用JSON parser

  • 如果你使用专用的JSON解析器(你自己的正则表达式可能相当神秘),你的代码中你可以更清楚地知道你正在处理JSON。
  • 使用起来会更容易
  • 它会更可靠,尤其是在正则表达式可能会崩溃的极端情况下(正确实现的JSON解析器应该正确处理所有情况。)

所以,是的,你可能会破解一个正则表达式来做这件事,但鉴于有一个全面的JSON解析器(我链接到的那个)可以免费获得,所以用正则表达方式做这件事没什么意义。 p>