python - python3:正则表达式组 1,意外结果
问题描述
我正在尝试寻找一种模式并在 python3 中捕获它。由于某种原因re.search('(NM_\d+)[^.]', 'NM_000051.3').group(1)
没有返回我所期望的。结果是“NM_00005”而不是“NM_000051”。有人可以解释为什么吗?
解决方案
你否定这个.
字符,[^.]
所以它匹配得很好1
。您只需要不否定它就可以让您的团队在它之前停止。
>>> re.search('(NM_\d+)[.]', 'NM_000051.3').group(1)
'NM_000051'
如同
>>> re.search('(NM_\d+)\.', 'NM_000051.3').group(1)
但毕竟为什么不让它匹配,直到找不到数字呢?
re.search('(NM_\d+)', 'NM_000051.3').group(1)
推荐阅读
- android - 如何通过BluetoothGatt在两部Android手机中相互通信
- upc - 如何解决 UPC 运行时错误:共享内存不足
- google-cloud-platform - Neo4j 本地与云的性能差异
- javascript - 单击按钮以删除自身及其父 div
- scala - Spark 流存储方法仅适用于 Duration 窗口,但不适用于自定义接收器中的 foreachRDD 工作流
- google-cloud-firestore - Firestore 安全规则限制写入设置和更新的字段?
- python - 烧瓶记录错误:“TypeError findCaller() 采用 1 到 2 个位置参数,但给出了 3 个”在 app.run(Python 3.8)上
- flutter - “zsh:找不到命令:pub”,同时测试我的锻炼代码
- django - django 管理面板图像字段产生错误的图像路径
- javascript - 为什么 reactjs setState 有时会重新渲染旧状态数据?