python的正则表达式
我在用python编写正则表达式时遇到了困难。 例如,我得到了下面的正确答案python的正则表达式,python,regex,Python,Regex,我在用python编写正则表达式时遇到了困难。 例如,我得到了下面的正确答案 "GET /images/launch-logo.gif HTTP/1.0" 220 1839 相配 "(\S+) (\S+)\s*(\S*)" (\d{3}) (\S+) 但是,我仍然需要包括以下所有案例 “GET/history/history.html hqpao/hqpao_home.html HTTP/1.0“200 1502 “GET/shuttle/missions/missions.html shu
"GET /images/launch-logo.gif HTTP/1.0" 220 1839
相配
"(\S+) (\S+)\s*(\S*)" (\d{3}) (\S+)
但是,我仍然需要包括以下所有案例
“GET/history/history.html hqpao/hqpao_home.html
HTTP/1.0“200 1502
“GET/shuttle/missions/missions.html shuttle从
肯尼迪航天中心HTTP/1.0“200 8677
“GET/finger@net.com HTTP/1.0”404-
但是我的表达不起作用。当我只是逐案处理正则表达式时,我对它有什么误解。这可能有点混乱,但它可以工作:
\"(\S+) (\S+[\s\w\.\@]*)\s*(\S*)\"\s?(\d{3})\s(\S+)*
你可以在Regexr上玩它 您可以使用
^"([^\s"]+)\s+([^\s"]+)(?:\s+([^"]+?))?\s+([A-Z]+/\d[\d.]*)"\s*(\d{3})\s*(\S+)$
见
详细信息
-行的开头(如果要将整个文件读入变量,请使用^
,re.M
)f.read()
-双引号“
-第1组:除空格和双引号外的一个或多个字符([^\s“]+)
-1+空格\s+
-第2组:除空格和双引号外的一个或多个字符([^\s“]+)
-可选的非捕获组匹配(?:\s+([^“]+?)?
-1+空格\s+
-第3组:除([^“]+?)
以外的任何1个或多个字符,尽可能少“
-1+空格\s+
-第4组:1+大写字母,([A-Z]+/\d[\d.]*)
,然后是1位数字,后跟任何0+数字或/
字符
-双引号“
-0+空格\s+
-第5组:三位数字(\d{3})
-0+空格\s*
-1个或多个非空白字符(\S+)
-字符串结束$
(1)
、(2)
和(3)
是您想要匹配的部分,还是要匹配的字符串的编号列表?我的正则表达式必须包括所有(1)、(2)、(3)和最开始的casesy,但在(1)case(1)中要匹配的实际字符串是什么GET/history/history.html hqpao/hqpao_home.html HTTP/1.0“200 1502
,或者它只是“GET/history/history.html hqpao/hqpao_home.html HTTP/1.0”200 1502
,而(1)只是在您的帖子中对其进行编号?哦!它只是用于编号,不包含在要求中
^"([^\s"]+)\s+([^\s"]+)(?:\s+([^"]+?))?\s+([A-Z]+/\d[\d.]*)"\s*(\d{3})\s*(\S+)$