在字符串

时间:2017-01-08 19:37:27

标签: regex

我正在努力使用Notepad ++中的正则表达式来匹配“patching_rect”之后前两个逗号之间的内容:[“在这一行文本中:

  

“patching_rect”:[218.5,165.0,150.0,20.0],

在这种情况下,所需的匹配是“165.0”。

我设法将4个坐标中的第一个与:

匹配
(?<="patching_rect" : \[ ).*?(?=,)

但我想要匹配第二个。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

我不会为看起来很烦恼。这是一个解决方案。替换这个:

("patching_rect"\s*:\s*\[[^,]+,\s*)[^,]+

有了这个:

${1}0.0

这样做很简单:

  • "patching_rect"\s*:\s*\[匹配[
  • 之前的所有内容
  • [^,]+,\s*匹配第一个值和逗号以及以下空格
  • [^,]+匹配第二个值

第一部分在$1中捕获,并在替换字符串中重复使用。

答案 1 :(得分:0)

我想我已经得到了:诀窍是用相同的东西替换整行的开头,然后替换后面的数字:

这在查找:("patching_rect" ?: ?\[[^,]+,) ?([^,]+) 这包括替换:$1 0.0

问题是存在的,所以空格是可选的,以防万一。