假设我有一个字符串:
Beverly.Hills.Chihuahua.3.Viva.La.Fiesta!.2012.1080p.BluRay.x264-[YTS.AG]
我希望将其过滤到
Beverly Hills Chihuahua 3 Viva La Fiesta!
我需要什么?我需要杀掉最后的部分,那一年是任何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, ' ')
首先提取文本,然后用单个空格替换点
答案 3 :(得分:0)
我正在尝试一步到位的解决方案,但并不成功。所以我在这里提到了一个两步的过程。如果任何人都可以通过一步完成它,那将是IMO的完美解决方案。
第1步:使用此regex
:
((?:(?:[a-zA-Z0-9!]*)\.)*?)\d{4}
它将捕获第一个捕获组(demo)中的字符串Beverly.Hills.Chihuahua.3.Viva.La.Fiesta!.
。
第2步:您现在需要将.
中的\1
替换为space
,以获得所需的结果。