正则表达式替换文本

时间:2016-05-12 06:49:13

标签: regex

几个月前我发现了这个问题,并且丢失了我的笔记。而我失败的记忆并没有帮助。

假设我有一个字符串:

Beverly.Hills.Chihuahua.3.Viva.La.Fiesta!.2012.1080p.BluRay.x264-[YTS.AG]

我希望将其过滤到

Beverly Hills Chihuahua 3 Viva La Fiesta!

我需要什么?我需要杀掉最后的部分,那一年是任何4位数的年份,之后的一切都是不变的。

4 个答案:

答案 0 :(得分:0)

这是正则表达式:

str = Beverly.Hills.Chihuahua.3.Viva.La.Fiesta!.2012.1080p.BluRay.x264-[YTS.AG]

reg = \(.*\)[[:digit:]]\{4\}\(.*\)

答案 1 :(得分:0)

您正在寻找的表达方式是:

are_all_daily_budgets_spent = 0
   has_account_hit_spend_limit = 0

模式是:

/.\d\d\d\d.*/g

如果您使用的是Javascript,以下是可以替换为空白的正则表达式:

.\d\d\d\d.*

使用此link拼写您的正则表达式。只需删除替换中的部分即可获得结果。

答案 2 :(得分:0)

在javascript中,我会这样做:

var str = "Beverly.Hills.Chihuahua.3.Viva.La.Fiesta!.2012.1080p.BluRay.x264-[YTS.AG]";
/(.*)\W?\b\d{4}\b/.exec(str).replace(/\./g, ' ')

首先提取文本,然后用单个空格替换点

Demo

答案 3 :(得分:0)

我正在尝试一步到位的解决方案,但并不成功。所以我在这里提到了一个两步的过程。如果任何人都可以通过一步完成它,那将是IMO的完美解决方案。

第1步:使用此regex

((?:(?:[a-zA-Z0-9!]*)\.)*?)\d{4}

它将捕获第一个捕获组(demo)中的字符串Beverly.Hills.Chihuahua.3.Viva.La.Fiesta!.

第2步:您现在需要将.中的\1替换为space,以获得所需的结果。