如何在Notepad++中仅移除首个...后的所有方括号?
问题描述
原始文本:
//asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //test/asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //test/asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //test/asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //test/asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/...
需求:在Notepad++中仅移除首个“... ”之后的所有方括号([和]),最终效果如下:
//asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //test/asdj/asdmaopifndqpw/asdkjlha/safd/waoqjerpq/124152/124152-app/1jr-2rj1/... //asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //test/asdj/asdmaopifndqpw/asdkjlha/safd/waoqjerpq/124152/124152-app/1jr-2rj1/... //asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //test/asdj/asdmaopifndqpw/asdkjlha/safd/waoqjerpq/124152/124152-app/1jr-2rj1/... //asdj/[asdmaopifndqpw]/[asdkjlha]/[safd]/[waoqjerpq]/124152/124152-app/1jr-2rj1/... //test/asdj/asdmaopifndqpw/asdkjlha/safd/waoqjerpq/124152/124152-app/1jr-2rj1/...
已知正则片段:
[\[\]]:匹配所有方括号(?<=\.\.\.).*:匹配“...”之后的所有内容
尝试组合((?<=\.\.\.).*)[\[\]]+失败,该表达式会将“...”后的整段内容作为分组,而非仅匹配方括号,无法实现需求。
解决方案
在Notepad++中使用以下正则替换规则:
查找目标
(?<=\.\.\..*?)[\[\]]
替换为
留空(输入框内不填任何内容)
规则说明
(?<=\.\.\..*?):正向后顾断言,确保当前匹配的方括号处于首个“... ”之后。其中.*?为非贪婪匹配,避免覆盖后续内容,精准限定生效区域。[\[\]]:匹配单个方括号([或])。
执行替换时,勾选Notepad++替换窗口中的「正则表达式」选项,点击「全部替换」即可达到目标效果。
内容的提问来源于stack exchange,提问作者jarzyn
相关产品推荐
相关产品推荐

