如何使用正则表达式提取GET与HTTP/1.0之间的目标字符串?
正则表达式提取目标路径方案
针对你的需求,直接用以下正则表达式就能精准捕获目标路径:
^GET\s+(.*?)\s+HTTP/1.0
正则逻辑拆解
^GET\s+:匹配字符串开头的"GET ",^确保从字符串起始位置匹配,\s+兼容可能出现的多个空格(比固定单个空格更鲁棒)(.*?):非贪婪模式捕获任意字符,直到遇到后续的" HTTP/1.0",括号会把这部分内容标记为可提取的分组\s+HTTP/1.0:匹配路径后的" HTTP/1.0",确保捕获截止到这个位置,不会包含后续的多余内容
实际代码示例
Python
import re input_str = "GET /testline HTTP/1.0#015#012U" match_result = re.search(r'^GET\s+(.*?)\s+HTTP/1.0', input_str) if match_result: target_path = match_result.group(1) print(target_path) # 输出: /testline
JavaScript
const inputStr = "GET /testline HTTP/1.0#015#012U"; const regex = /^GET\s+(.*?)\s+HTTP\/1\.0/; // 注意转义斜杠和点 const matchResult = inputStr.match(regex); if (matchResult) { const targetPath = matchResult[1]; console.log(targetPath); // 输出: /testline }
额外说明
如果路径本身可能包含空格(虽然不符合标准URL规范,但如果你的场景存在这种情况),可以调整正则为^GET\s+(.*)(?=\s+HTTP/1.0),利用正向预查来定位截止位置,不过非贪婪模式在大多数常规场景下已经足够好用。
内容的提问来源于stack exchange,提问作者Nikolo
相关产品推荐
相关产品推荐

