正则表达式不匹配句点后跟字母 - ruby
regex not matching periods followed or preceded by letters - ruby
这是我用来添加文章标题的方法。问题是我遇到任何带有“。”的标题时出错。后面或前面的字母。例如 "example.com"、"U.S." 不匹配。但是它在使用数字时有效。
def self.to_slug(str)
#strip the string
ret = str.strip
ret.gsub! /['`]/,"-"
ret.gsub! /\s*@\s*/, " at "
ret.gsub! /\s*&\s*/, " and "
ret.gsub! /\s*&\s*/, " and "
ret.gsub! /\s*[.]\s*/, "-"
ret.gsub! /\s*[^A-Za-z0-9\.\-]\s*/, '-'
ret.gsub! /-+/,"-"
ret.gsub! /\A[-\.]+|[-\.]+\z/,""
ret = ret.downcase
ret
end
这是标题:Guitar legends Fender snap up Irish music start-up for 5m - Independent.ie
。
它制造的弹头是 guitar-legends-fender-snap-up-irish-music-start-up-for-5m-independent-ie
,这是错误:
Mysql2::Error: Column 'id' in where clause is ambiguous: SELECT `articles`.`id` AS t0_r0, `articles`.`feed_id` AS t0_r1, `articles`.`publish_date` AS t0_r2, `articles`.`url` AS t0_r3, `articles`.`name` AS t0_r4, `articles`.`author` AS t0_r5, `articles`.`image` AS t0_r6, `articles`.`image_caption` AS t0_r7, `articles`.`text` AS t0_r8, `articles`.`guid` AS t0_r9, `articles`.`slug` AS t0_r10, `articles`.`video_url` AS t0_r11, `articles`.`active` AS t0_r12, `articles`.`created_at` AS t0_r13, `articles`.`updated_at` AS t0_r14,
如果要转换:
Guitar legends Fender snap up Irish music start-up for 5m - Independent.ie
到
Guitar-legends-fender-snap-up-irish-music-start-up-for-5m-independent-ie
您只需将此正则表达式与 -
一起用作替换字符串:
\W+
这是我用来添加文章标题的方法。问题是我遇到任何带有“。”的标题时出错。后面或前面的字母。例如 "example.com"、"U.S." 不匹配。但是它在使用数字时有效。
def self.to_slug(str)
#strip the string
ret = str.strip
ret.gsub! /['`]/,"-"
ret.gsub! /\s*@\s*/, " at "
ret.gsub! /\s*&\s*/, " and "
ret.gsub! /\s*&\s*/, " and "
ret.gsub! /\s*[.]\s*/, "-"
ret.gsub! /\s*[^A-Za-z0-9\.\-]\s*/, '-'
ret.gsub! /-+/,"-"
ret.gsub! /\A[-\.]+|[-\.]+\z/,""
ret = ret.downcase
ret
end
这是标题:Guitar legends Fender snap up Irish music start-up for 5m - Independent.ie
。
它制造的弹头是 guitar-legends-fender-snap-up-irish-music-start-up-for-5m-independent-ie
,这是错误:
Mysql2::Error: Column 'id' in where clause is ambiguous: SELECT `articles`.`id` AS t0_r0, `articles`.`feed_id` AS t0_r1, `articles`.`publish_date` AS t0_r2, `articles`.`url` AS t0_r3, `articles`.`name` AS t0_r4, `articles`.`author` AS t0_r5, `articles`.`image` AS t0_r6, `articles`.`image_caption` AS t0_r7, `articles`.`text` AS t0_r8, `articles`.`guid` AS t0_r9, `articles`.`slug` AS t0_r10, `articles`.`video_url` AS t0_r11, `articles`.`active` AS t0_r12, `articles`.`created_at` AS t0_r13, `articles`.`updated_at` AS t0_r14,
如果要转换:
Guitar legends Fender snap up Irish music start-up for 5m - Independent.ie
到
Guitar-legends-fender-snap-up-irish-music-start-up-for-5m-independent-ie
您只需将此正则表达式与 -
一起用作替换字符串:
\W+