Regex使用Notepad++在csv上搜索和替换特定文本

aor9mmx1  于 2023-05-11  发布在  其他
关注(0)|答案(1)|浏览(185)

我需要在CSV文件上使用Regex在Notepad++或TextPad上进行搜索和替换,以替换特定列上的文本,如果满足其他文本。例如,我有这样一行:
仅当满足8x8和**“1”时,才搜索价格50.75**:

sample,,,,,,,,50.75,true,,,InStock,,,,,#593D24:WHITE PLASTIC,,,8x8,,,"1"" inch"
sample,,,,,,,,27.30,true,,,InStock,,,,,#593D24:WHITE PLASTIC,,,8x8,,,"2"" inch"
sample,,,,,,,,50.75,true,,,InStock,,,,,#593D24:WHITE PLASTIC,,,12x12,,,"0"" inch"

仅将价格替换为75.25

sample,,,,,,,,75.25,true,,,InStock,,,,,#593D24:WHITE PLASTIC,,,8x8,,,"1"" inch"

任何帮助将不胜感激。
先谢谢你了。

wqlqzqxt

wqlqzqxt1#

使用环视:
搜索:

(?<=,)50.75(?=,.*?\b8x8\b.*?"1"")

替换:

75.25

参见live demo
Regex细分:

  • (?<=,)表示前面的字符是逗号
  • (?=,.*?\b8x8\b.*?"1"")表示后面的字符是逗号8x8"1""

向后查找逗号可确保250.75等数量不匹配。
单词边界\b确保像18x8这样的维度不匹配。
使用不情愿的量词.*?使其更有效,因为.*将在回溯到下一个字符之前消耗所有输入。

相关问题