我正在尝试写一个脚本,它将匹配字符串中的所有单词,并将剥离所有非单词(IE:.点、与号、冒号等),并将它们替换为连字符。
示例字符串:
L. L. Cool J & Sons: The Cool Kats
输出示例:
L-L-Cool-J-Sons-The-Cool-Kats
下面是我正在使用的一些代码:
str = "L. L. Cool J & Sons: The Cool Kats"
str.scan(/\w+/)谢谢你的帮助!我仍然是regex的新手。
发布于 2011-10-04 22:32:28
更新:我刚刚注意到这两个调用可以表示为一个:
str.gsub(/\W+/, '-')
=> "L-L-Cool-J-Sons-The-Cool-Kats"...which得到的结果与纳伦德拉的答案或我最初的答案相同:
# 1st gsub: replace all non-words with hyphens
# 2nd gsub: replace multiple hyphens with a single one
str.gsub(/\W/,'-').gsub(/-+/, '-')
=> "L-L-Cool-J-Sons-The-Cool-Kats"发布于 2011-10-04 22:33:16
在一行中,找到所有不是"word字符“的文本,并用破折号替换:
str.gsub(/\W+/, '-')请注意,“单词字符”包括数字和下划线。要只允许使用字母,您可以使用以下命令:
str.gsub(/[^A-Za-z]+/, '-')发布于 2011-10-04 22:26:02
对于非单词字符,可以使用\W。它应该能做好你的工作。\w代表单词字符。我不太使用ruby,但它应该看起来像这样的result = subject.gsub(/\W+/, '-')。
https://stackoverflow.com/questions/7649408
复制相似问题