从包含特定词的csv行中删除特定词

3

我有一个以CSV文件格式导出的元关键词列表

例如:

For Rent ABC-1234 , For Rent ABC-1234 Rental, For Rent ABC1234 , For Rent ABC1234 Rental, For Rent ABC 1234 , For Rent ABC 1234 Rental, For Lease ABC-1234 , For Lease ABC-1234 Rental, For Lease ABC1234 , For Lease ABC1234 Rental, For Lease ABC 1234 , For Lease ABC 1234 Rental

我希望做的是将“出租XXX租赁”的值中的“出租”文字移除,这样剩下的值就只读作“XXX租赁”。

这可以使用正则表达式来实现吗?


你在使用什么工具,换句话说,你用的是哪个正则表达式实现? - ΩmegaMan
嗯,我在Notepad++中玩耍,试图弄清楚它。不过我发现你可以在Excel中使用VB来完成相同的操作。 - user3009360
2个回答

2
您可以在“查找内容”字段中使用此正则表达式:
For Rent ([^,]+ Rental)

替换为

$1

[^,] 表示“除逗号以外的任何字符”,+ 表示“1次或多次”。我看到这些值是由逗号分隔的,所以这似乎是一个安全的模式。为了更安全的匹配,您可以尝试在“查找内容”字段中使用 For Rent ([^,]*? +Rental)(这也将考虑到 Rental 前面的多个空格)。

输出:

For Rent ABC-1234 , ABC-1234 Rental, For Rent ABC1234 , ABC1234 Rental, For Rent ABC 1234 , ABC 1234 Rental, For Lease ABC-1234 , For Lease ABC-1234 Rental, For Lease ABC1234 , For Lease ABC1234 Rental, For Lease ABC 1234 , For Lease ABC 1234 Rental

enter image description here


看起来完美,我今天下班了,明天测试并点赞。谢谢! - user3009360

0

我认为这就是你想要的:

(A[^,]+\d Rental)

这将从“出租/租赁XXX租赁”中挑选出“XXX租赁”,您无需替换任何内容。
编辑:
如果不开启(不区分大小写)标志,则上面的代码可行。
如果需要不区分大小写的正则表达式,请改用以下代码:
(?<=\w{4}\s|\w{5}\s)([^,]+\d Rental)
(?<=\w{4}\s|\w{5}\s)是一个正向后瞻模式,匹配后面跟着\w{4}\s(租赁)或\w{5}\s(租约)的字符串。
For \w+ \K([^,]+\d Rental)
  • \K 丢弃所有先前的匹配,并从当前位置开始匹配。

那对我不起作用。它将行“出租xxx租赁”更改为“出租”。 - user3009360
你是否使用了不区分大小写的标志“i”?如果是,我的解决方案将会有问题,请尝试改用(?<=\w{4}\s|\w{5}\s)([^,]+\d Rental) - Thomas Hsieh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接