例如:
[TEXT1,TEXT2,TEXT3]
我的表达式:[\[].*,.*[\]]
查找有逗号的字符串(在方括号中间),但我只想明确匹配方括号中存在的逗号。
我需要将逗号替换为空格 - 但仅在方括号中。
我尝试过[\[],[\]]
,但那不起作用 -
\[(.*?)\]
也会找到中间的文本 - 但我不想要整个字符串。
有人能建议我如何只找到方括号中间的逗号吗?
例如:
[TEXT1,TEXT2,TEXT3]
我的表达式:[\[].*,.*[\]]
查找有逗号的字符串(在方括号中间),但我只想明确匹配方括号中存在的逗号。
我需要将逗号替换为空格 - 但仅在方括号中。
我尝试过[\[],[\]]
,但那不起作用 -
\[(.*?)\]
也会找到中间的文本 - 但我不想要整个字符串。
有人能建议我如何只找到方括号中间的逗号吗?
查找内容:
(?:\[|(?!^)\G)[^,\]]*\K,
分解:
(?:\[|(?!^)\G)
匹配开头的 [
或者 上一次匹配的结尾 (?!^)\G
。[^,\]]*
消耗所有字符,直到下一个逗号。\K
告诉正则表达式引擎放弃之前匹配到的内容。,
最后匹配逗号。\G
和\K
很困惑。 - d0nut我知道这是一个老问题,但我正在寻找解决同样问题的方法,并找到了以下解决方案:,(?=[^\[]*\])
希望这能帮助到偶然看到这篇文章的人!
注意:使用Text Wrangler而不是Notepad++。
在正则表达式中,方括号通常需要进行转义,因此类似于
\[.*(,).*\]
能够工作 - 正则表达式第一组(在其他工具中捕获/可替换的部分,在我没有记事本++的情况下)将是您想要的带括号的单个逗号。