这有效:
'http://foobar.com/default_profile_images/default_profile_6_normal.png'.sub(/normal\.([a-z]+)$/, 'reasonably_small.\1')
这不是:
"http://foobar.com/profile_images/1550660558/Bathurze_Pics_normal.JPG".sub(/normal\.([a-z]+)$/, 'reasonably_small.\1')
我正在尝试用normal
替换reasonably small
。任何人都知道它为什么不起作用?
答案 0 :(得分:3)
这是一个区分大小写的问题。 JPG与[a-z]不匹配。如果您将正则表达式更改为不区分大小写,则应该可以正常工作。
更改/normal\.([a-z]+)$/
到/normal\.([a-z]+)$/i
(添加i
修饰符)
答案 1 :(得分:0)
第二个示例在结尾处有大写字母,因此您应该从
更改正则表达式 /normal\.([a-z]+)$/
到
/normal\.([a-zA-Z]+)$/
编辑:修复了第二个正则表达式中缺少的
答案 2 :(得分:0)
添加了案例处理 -
"http://foobar.com/profile_images/1550660558/Bathurze_Pics_normal.JPG".sub(/normal\.([a-z]+)$/, 'reasonably_small.\1')
应该工作。
答案 3 :(得分:0)
原因是/ [a-z] + /只捕获小写字母,换句话说它是区分大小写的。
由于第一个例子中的文件后缀是.png所以,正则表达式匹配,而第二个没有。
解决方案可以简单地将其从[a-z] +更改为[A-Za-z +]。