2015-04-16 213 views
3

我有一个CSV文件卸下包含特定单词CSV行特定的词

防爆出口meta关键字:

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租赁“。

这可能与正则表达式有关吗?

+0

您使用的是什么工具;换句话说哪个Regex实现? – OmegaMan

+0

那么,我只是在试图弄清楚它在Notepad ++中玩耍。我发现你可以在excel中使用VB来做同样的事情。 – user3009360

回答

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

+0

看起来很完美,我今天离开了工作,明天就会测试出来,并且upvote。谢谢! – user3009360

+0

慢慢来! :) –

0

我想这是你想要什么:

(A[^,]+\d Rental) 

这将挑选出 “XXX租赁”,从 “出租/租赁XXX租赁” ,而且你不需要更换任何东西。

编辑:

上述工程如果i(不区分大小写)标记未被打开。

对于不区分大小写的正则表达式,而不是使用以下:

(?<=\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丢弃以前所有的比赛,并开始从当前位置匹配。
+0

这对我不起作用。它改变了行: “租赁xxx租赁”,“对于乐”, – user3009360

+0

你有没有不区分大小写的标志'我'?如果是这样,我的解决方案会有问题,请尝试'(?<= \ w {4} \ s | \ w {5} \ s)([^,] + \ d Rental)'。 –