【问题标题】:Extract the User-Agent from HTTP request从 HTTP 请求中提取用户代理
【发布时间】:2021-07-28 03:00:20
【问题描述】:

我正在尝试从 HTTP 请求中获取 User-Agent 值,并将其放入一个名为“UserAgent”的单独字段中,但到目前为止还没有成功。看起来我需要查找回车和换行? 将不胜感激。
以下是 regex101 链接。

https://regex101.com/r/rdu8yE/1

POST /xxx/yyyy HTTP/1.1\r\n用户代理: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0\r\n接受: application/json\r \nAccept-Language: en-US,en;q=0.5\r\nX-XSRF-TOKEN: 989g8ddfgdf7979df\r\ntimestamp: 2021-04-07T18:35:50.639Z\r\nContent-Type: application/json; charset=utf-8\r\nContent-Length: 340\r\nOrigin: https://example.com\r\nConnection: keep-alive\r\nReferer: https://my.example.com\r\ n

【问题讨论】:

    标签: regex rex


    【解决方案1】:

    也许是这个? ^.*?User-Agent: (?<UserAgent>.*?)\\r\\n

    这比你需要的多一点,选择在字符串的开头开始选择,消耗但不捕获所有直到用户代理的信号(这里我使用 CRLFUser-Agent :),然后捕获直到但不包括下一个 CRLF。

    您的原始正则表达式:User-Agent: (?<UserAgent>[^\\r\\n]*) 包含“n”作为符号类的一部分,其存在将停止捕获(在方括号中定义),因此您只能捕获到单词“Windows”的中途。

    如果不清楚,请回复评论:)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      相关资源
      最近更新 更多