我是Python和Python RE的新手.
我正在尝试为ARM汇编代码创建一个解析器.我想为匹配条件分支指令制作正则表达式,它可以是:
beq, bne, blt, bgt
Run Code Online (Sandbox Code Playgroud)
我尝试了表单的正则表达式
'b[eq|ne|lt|gt]'
Run Code Online (Sandbox Code Playgroud)
但这不匹配.有人可以帮我这个吗?
您应该使用括号作为选项,而不是方括号:
b(eq|ne|lt|gt)
Run Code Online (Sandbox Code Playgroud)
而且你通常想要一个非捕获组:
b(?:eq|ne|lt|gt)
Run Code Online (Sandbox Code Playgroud)
而且你也可以让它更优化:
b(?:eq|ne|[lg]t)
Run Code Online (Sandbox Code Playgroud)
方括号将被理解为任何字符或字符范围.所以[eq|ne|lt|gt]实际上意味着任一个e,q,|,n,e(再次,所以它成为多余的),等等.
| 归档时间: |
|
| 查看次数: |
697 次 |
| 最近记录: |