我正在与正则表达式中的记事本++“patching_rect”后到前两个逗号之间的内容相匹配挣扎后匹配两个逗号之间内容:“在文本的这个一行:正则表达式的字符串
” [patching_rect 。
: “:[218.5,165.0,150.0,20.0,
在这种情况下所需的匹配为” 165.0"
我设法匹配第一对4与坐标
(?<="patching_rect" : \[).*?(?=,)
但我想匹配第二个。谁能帮忙?
我正在与正则表达式中的记事本++“patching_rect”后到前两个逗号之间的内容相匹配挣扎后匹配两个逗号之间内容:“在文本的这个一行:正则表达式的字符串
” [patching_rect 。
: “:[218.5,165.0,150.0,20.0,
在这种情况下所需的匹配为” 165.0"
我设法匹配第一对4与坐标
(?<="patching_rect" : \[).*?(?=,)
但我想匹配第二个。谁能帮忙?
我不会打扰lookbehinds。这是一个解决方案。有了这个
("patching_rect"\s*:\s*\[[^,]+,\s*)[^,]+
:替换此
${1}0.0
这样做什么是很简单:
"patching_rect"\s*:\s*\[
匹配的一切行动和包括[
[^,]+,\s*
第一值相匹配和逗号以及下面的空格[^,]+
第二值第一部分在$1
捕获,并且在替换字符串重用匹配。
您也可以使用'\ K'来省略所需匹配前的所有内容。 –
@SebastianProske是的,好点。 OP:替换''patching_rect'\ s *:\ s * \ [[^,] +,\ s * \ K [^,] +'用'0.0' –
完美!奇迹般有效。非常感谢! –
我想我知道了:诀窍是同样的事情,以取代该行的整体启动,然后后更换编号:
这正好在寻找:("patching_rect" ?: ?\[[^,]+,) ?([^,]+)
这正好替换:$1 0.0
问号在那里,以便空格是可选的,以防万一。
你的意思是'patching_rect [1]'? –
我需要用“0.0”替换“165.0”。但那165.0也可以是另一个数字。 –
“patching_rect”是否保证出现在行首? – Tom