正则表达式 - 通过删除字符来解析字符串

时间:2014-04-05 14:30:19

标签: ruby-on-rails regex

我正在尝试解析网址的路径部分。

输入是一个字符串,例如site/whatever% ^&*/page/to-days_date//,我想将其转换为site/whatever/page/to-days_date

删除的内容将是以下任何内容:

  1. 大写或小写字母
  2. 数字/数字
  3. 破折号
  4. 下划线

1 个答案:

答案 0 :(得分:1)

只需使用您现有的正则表达式添加/+$管道(|)即可。它表示从输入的末尾匹配/的任何数字(从1开始)。因此,它会在输入结束时适用于/ ///////

myString = '''blog/whatever%  ^&*/page/to-days_date//'''
print re.sub(r'/+$|[^a-zA-Z0-9_\-\/]+', '', myString)
               ^^^ here