添加前斜杠到python正则表达式

时间:2013-11-06 02:27:15

标签: python regex python-2.7

目前,在Python程序中,我使用

self.regex_string = re.compile("^\w+(-\w+)*$")

检查输入字符串是否包含字母数字加连字符。

我需要更改正则表达式以允许正斜杠(/)

我迷失在复兴的森林里。有人可以建议改变我的正则表达式,它会为允许的字符添加正斜杠吗?

或者,是否有更高效的正则表达式允许 (A-z,a-z,0-9, - 和/) 没有空格?

由于

2 个答案:

答案 0 :(得分:1)

对正则表达式进行了细微更改,以便在每个地方\w被允许,/也是允许的:

^(\w|/)+(-(\w|/)+)*$

如果您使用的是替换组,则由于额外的parens,组号会随着此正则表达式而改变。在Python源代码中,您可以使用原始字符串来避免在大多数情况下转义\

self.regex_string = re.compile(r'^(\w|/)+(-(\w|/)+)*$')

奖金,另外拒绝按要求包含//的字符串:

self.regex_string = re.compile(r'^(\w|/(?!/))+(-(\w|/(?!/))+)*$')

这使用零宽度负向前瞻断言/(?!/),意思是“斜杠后面没有另一个斜杠”。

答案 1 :(得分:0)

您可以尝试使用字符类:

self.regex_string = re.compile("^\w+[\w\-/]*$")

括号([])定义字符类,它们将匹配其中的任何内容。例如,[A-Cd-fG]只允许A,B,C,d,e,f和G.