使用正则表达式将数字更改为字符

时间:2017-08-23 08:08:46

标签: ruby regex string

我尝试将字符串转换为在单词之间加入连字符( - )并更改为小写。例如:

  • 'ThisIsMyString''this-is-my-string'

到目前为止,这是我的代码:

def kebabize(str)
 str.gsub(/(?=[A-Z])/, '-').downcase
end

我还需要它来删除字符串中的数字。例如:

  • 'ThereIs3Words''there-is-words'

我需要在代码中添加什么才能执行此操作?

2 个答案:

答案 0 :(得分:1)

只需在其周围包裹另一个gsub

def kebabize(str)
 str.gsub(/\d+/, '').gsub(/(?=[A-Z])/, '-').downcase
end

答案 1 :(得分:-1)

捕获它的正则表达式是[A-Z] [a-z] +(?= [A-Z] | \ b) 请参阅:https://regex101.com/r/popMSp/1

说明: 读'字'以大写字母([A-Z])开头,后跟几个大写字母([a-z] +),直到遇到大写字母[A-Z]或\ b

在代码中,您省略了边界选项,因为这不需要替换:

<a href="https://example.com/mypdf.pdf" target="_blank" rel="nofollow noopener">View PDF</a>