我已经导出了一个数据库表。我需要用空格替换图像文件名,并希望使用notepad++和regex。我有:
'data/green tea powder.jpg'
'data/prod_img/lumina herbal shampoo.JPG'
'data/ALL GREEN HERBS.jpeg'
'data/prod_img/PSORIASIS KIT (640x530) (2).jpg'需要让它们看起来像这样:
'data/green_tea_powder.jpg'
'data/prod_img/lumina_herbal_shampoo.JPG'
'data/ALL_GREEN_HERBS.jpeg'
'data/prod_img/PSORIASIS_KIT_(640x530)_(2).jpg'我只想改变引号之间的空格(我不想改变大写)。更具体地说,我想替换“data/ and”之间的任何和所有空格,因为DB中的引号之间还有其他空格,例如:
'data/ REPLACE ANY SPACE HERE '我发现了这个:
\s(?!(?:[^']*'[^']*')*[^']*$)但是还有其他地方在引号之间有空格,所以我想搜索data/,而不仅仅是一个单引号,但我不知道如何搜索。我尝试过\s(?!(?:[^'data\/]*'[^']*')*[^']*$),但它没有工作,而且我对regex还不太熟悉,无法做到这一点。
数据库中整行的一个例子是:
(712, 'GRTE-P', '', 'data/green tea powder.jpg', '2014-03-12 22:52:03'),我不想替换时间中的空格和行尾的数据标记,只想替换图像文件名。
提前感谢您的帮助!
发布于 2017-11-02 06:35:37
您必须使用基于\G的模式来确保匹配是连续的。
搜索:(?:\G(?!^)|'data/)[^' ]*\K[ ]
替换:_
第一个匹配使用交替的第二个分支,然后下一个匹配是连续的,并使用第一个分支。
https://stackoverflow.com/questions/47065992
复制相似问题