目前,在Python程序中,我使用
self.regex_string = re.compile("^\w+(-\w+)*$")
检查输入字符串是否包含字母数字加连字符。
我需要更改正则表达式以允许正斜杠(/)
我迷失在复兴的森林里。有人可以建议改变我的正则表达式,它会为允许的字符添加正斜杠吗?
或者,是否有更高效的正则表达式允许 (A-z,a-z,0-9, - 和/) 没有空格?
由于
答案 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.