如何编写regEx以识别字符串何时只有a-z 0-9?

时间:2018-02-20 23:57:13

标签: python regex django

我需要编写一个正则表达式模式来识别字符串何时有正则表达式。

我正在解析Django urls.py文件以查看用户指定为路由的内容。然后在我的中间件中,我正在查看request.path,我想检查传递的url是否是使用正则表达式或普通字符的URL。

我的想法是截取正则表达式网址,然后解析urls.py行以确定传入请求网址的绑定位置。

如果我有一个网址,那就是这样:

/users/{userid}/delete
or /users/{userid}
or /{userid}

我会将url规范化,以便/ users / 1139 / delete 将会      /用户/用户/删除

我想使用正则表达式来识别django url是用regex指定的,还是它的正常路径。

这是一个带有正则表达式的网址的示例:

articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\w-_]+)/

这是正常路径

/test/helloworld

我只需确定它何时具有正则表达式并对其进行规范化,以便可以更轻松地运行指标搜索。

不确定如何编写正则表达式以确定字符串行中是否有正则表达式,因为我逐行解析urls文件,并且我在正则表达式中非常糟糕并且无法解决它。

1 个答案:

答案 0 :(得分:0)

除了简单^之外的任何事情 如果您需要多个字符,只需添加+

即可

Regex101

[^a-z0-9]
Match a single character not present in the list below [^a-z0-9]
    a-z a single character in the range between a (index 97) and z (index 122) (case sensitive)
    0-9 a single character in the range between 0 (index 48) and 9 (index 57) (case sensitive)

Regular expression visualization

Debuggex Demo

多个字符[^a-z0-9]+

根据Grant Zukel的最终解决方案

re.match(".*[^a-z0-9\/].*", line2)