Python中文
首页
教程
问答
标签
搜索
登录
注册
如何修复此正则表达式?(nmap结果)
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图将文本解析为4个捕获组,但遇到了一个问题。在</p> <p>我的正则表达式是:</p> <pre><code>(\d{1,5})\/(tcp|udp)\s+open\s+(\S+)\s*(.*)? </code></pre> <p>一些示例输入是:</p> ^{pr2}$ <p>这几乎是完美的。问题出在135/udp的行上,没有version字段,因此我对该行的捕获组4正在环绕并捕获下一行的整个内容(从137/udp开始)。在</p> <p>我希望捕获组4对于135/udp行(或版本字段为空的任何地方)为空/空。在</p> <p>似乎我的最后一个<code>.*</code>不应该经过行结束符,但它确实是。我还将<code>?</code>包含在上一个捕获组之后,以尝试使其成为可选的,如允许空值。在</p> <p>谁能指出我做错了什么?解释我的错误比仅仅提供一个有效的正则表达式更有帮助。在</p> <p><a href="https://i.stack.imgur.com/oU4HF.png" rel="nofollow noreferrer">Visual representation</a></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>正如bytepusher指出的,我有一个匹配换行符的\s。我用空格或制表符[\t]的显式匹配替换了\s,如:</p> <pre><code>(\d{1,5})\/(tcp|udp)\s+open\s+(\S+)[ \t]*(.*)? </code></pre> <p>最正确的是,我将/s的所有实例替换为与预期间隔字符匹配的显式匹配:</p> ^{pr2}$
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
jupyter运行一个旧的pytorch版本
7 回答
Jupyter运行不同版本的卸载库?
3 回答
Jupyter运行指定的键盘快捷键
1 回答
Jupyter通过.local文件“逃逸”virtualenv。我该如何缓解这种情况?
3 回答
Jupyter重新加载自定义样式
9 回答
Jupyter错误:“没有名为Jupyter_core.paths的模块”
8 回答
jupyter错误:无法在随机林中将决策树视为png
5 回答
Jupyter错误'内核似乎已经死亡,它将自动重新启动'为一个给定的代码块
2 回答
Jupyter错误地用阿拉伯语和字母数字元素显示Python列表
4 回答
Jupyter隐藏数据帧索引,但保留原始样式
8 回答
Jupyter集线器:启动器中出现致命错误。。。系统找不到指定的文件
10 回答
Jupyther中相同值的相同哈希,但导出到Bigquery时不相同
9 回答
Jupy上Python的读/写访问问题
5 回答
jupy上没有模块cv
3 回答
Jupy上的排序错误
8 回答
Jupy中bqplot图形的紧凑布局
8 回答
Jupy中matplotlib plot的连续更新
9 回答
Jupy中Numpy函数的文档
9 回答
Jupy中Pandas的自动完成问题
3 回答
jupy中Qt后端的Matplotlib动画
2 回答