Python中的正则表达式
什么是正则表达式,它接受所有仅以字母开头的单词,并拒绝所有出现少于或多于三个连续正斜杠(//)的单词[如果且仅当斜杠存在] 例如: 允许使用ABC2123987 允许使用AV23DS///KOLJH 但是,FDG56/HJU这个词是不允许的Python中的正则表达式,python,regex,Python,Regex,什么是正则表达式,它接受所有仅以字母开头的单词,并拒绝所有出现少于或多于三个连续正斜杠(//)的单词[如果且仅当斜杠存在] 例如: 允许使用ABC2123987 允许使用AV23DS///KOLJH 但是,FDG56/HJU这个词是不允许的 另外,FDG56///HJU是不允许的。这匹配任何以字母开头的字符串,并且包含零斜杠或正好三个连续斜杠 ^[A-Za-z][^/]*(///[^/]*)?$ 试试这个模式 re.compile('(\w+(///)?)*') 一个更好的模式,如本答案的注
另外,FDG56///HJU是不允许的。这匹配任何以字母开头的字符串,并且包含零斜杠或正好三个连续斜杠
^[A-Za-z][^/]*(///[^/]*)?$
试试这个模式
re.compile('(\w+(///)?)*')
一个更好的模式,如本答案的注释所示:
re.compile('^[a-zA-Z]\w*?(///)?(\w+(///)?)*$')
你写代码了吗?用于在编写正则表达式时对其进行测试。如果三个正斜杠多次出现怎么办?那么不一定有三个正斜杠?你确定吗
re.match(r'^[:alpha:][^/]*(///[^/]*)?$','FEZ///zefzf')
->None
…用[A-Za-z]
替换[:alpha:]
,以修复@Zulu指出的问题。感谢修复,这就是您尝试在不同地区实现智能化和可移植性所得到的结果。。。这很有用,但它确实很模糊。非常感谢。重新编译(r“^[A-Za-z][^/]*(///[^/]*)?$”)工作正常…这将匹配foo///bar///baz和123。@tripleee-我相信匹配的foo///bar///和baz与描述的规范匹配。匹配的123不匹配。我不确定有没有干净的方法来处理这件事。有什么建议吗?([A-Za-z]\w*(///)?)*
@r3mus-如果三个斜杠后面跟一个数字字符,这就不起作用了。例如:abc///1abcWell,这不在标准中;)“所有单词仅以字母开头”而不是仅在///