目前,在 Python 程序中,我使用
self.regex_string = re.compile("^\w+(-\w+)*$")
检查字母数字加连字符的输入字符串。
我需要更改正则表达式以允许前斜杠( / )
我迷失在正则表达式的森林里。有人可以建议对我的正则表达式进行更改,将前斜杠添加到允许的字符中吗?
或者,是否有更有效的正则表达式允许( Az、az、0-9、- 和 / )没有空格?
谢谢
目前,在 Python 程序中,我使用
self.regex_string = re.compile("^\w+(-\w+)*$")
检查字母数字加连字符的输入字符串。
我需要更改正则表达式以允许前斜杠( / )
我迷失在正则表达式的森林里。有人可以建议对我的正则表达式进行更改,将前斜杠添加到允许的字符中吗?
或者,是否有更有效的正则表达式允许( Az、az、0-9、- 和 / )没有空格?
谢谢
也允许对您的正则表达式进行小幅更改,以便在每个地方\w
都/
允许:
^(\w|/)+(-(\w|/)+)*$
如果您使用的是替换组,则组编号会因附加括号而随此正则表达式更改。在 Python 源代码中,您可以使用原始字符串来避免在\
大多数情况下转义 s:
self.regex_string = re.compile(r'^(\w|/)+(-(\w|/)+)*$')
奖励,另外拒绝包含//
请求的字符串:
self.regex_string = re.compile(r'^(\w|/(?!/))+(-(\w|/(?!/))+)*$')
这使用了一个零宽度的负前瞻断言/(?!/)
,意思是“斜线后面没有另一个斜线”。
您可以尝试使用字符类:
self.regex_string = re.compile("^\w+[\w\-/]*$")
方括号 ( []
) 定义字符类,它将匹配其中的任何内容。例如,[A-Cd-fG]
将只允许 A、B、C、d、e、f 和 G。