Mat*_*ttM 5 regex replace find
我有一个已导出的数据库表。我需要用空格替换图像文件名,并想使用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 /和”之间的所有空格,因为数据库中的引号之间还有其他空格,例如:
'data/ REPLACE ANY SPACE HERE '
我找到了这个:
\s(?!(?:[^']*'[^']*')*[^']*$)
但是在其他地方,引号之间也有空格,因此我想data/在开头搜索,而不仅是单引号,而且我不知道该怎么做。我尝试了一下,\s(?!(?:[^'data\/]*'[^']*')*[^']*$)但是没有用,我对正则表达式还不够熟悉,无法做到这一点。
数据库中整行的示例是:
(712, 'GRTE-P', '', 'data/green tea powder.jpg', '2014-03-12 22:52:03'),
我不想替换行尾的时间和数据戳中的空格,而只替换图像文件名。
在此先感谢您的帮助!
您必须使用\G基于模式来确保匹配是连续的。
搜索:(?:\G(?!^)|'data/)[^' ]*\K[ ]
替换:_
第一个匹配使用交替的第二个分支,然后下一个匹配是连续的并使用第一个分支。