You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用grep按斜杠数量过滤含特定格式名称的文本行

按斜杠数量筛选行的正则方案

需求分析

你需要筛选出括号内的病毒名称部分恰好包含3个斜杠的行(目标行A/Wenzhou/mamamam/2013(H9N2)有3个/,其他行有4个)。

正则表达式写法

不需要转义/(除非你用/作为正则的分隔符,比如JavaScript的正则字面量场景),直接使用以下正则即可匹配目标行:

^Influenza A virus \(A(?:/[^/]+){3}\([^)]+\)\)$

正则解释

  • ^ 和 $:匹配行的开头和结尾,确保整行符合格式
  • Influenza A virus \(:匹配固定前缀,\(转义括号因为它是正则特殊字符
  • A(?:/[^/]+){3}:匹配A开头,后面跟着恰好3次/+非斜杠字符的组合(对应3个斜杠)
  • \([^)]+\):匹配括号内的亚型部分(比如(H9N2))
  • \):匹配行尾的闭合括号

工具使用示例

1. 命令行grep

grep '^Influenza A virus (A/[^/]+/[^/]+/[^/]+\([^)]+\))$' your_input_file.txt

2. Python代码

import re

input_lines = [
    "Influenza A virus (A/chicken/Wenzhou/642/2013(H9N2))",
    "Influenza A virus (A/chicken/Wenzhou/643/2013(H9N2))",
    "Influenza A virus (A/chicken/Wenzhou/644/2013(H9N2))",
    "Influenza A virus (A/Wenzhou/mamamam/2013(H9N2))"
]

match_pattern = re.compile(r'^Influenza A virus \(A(?:/[^/]+){3}\([^)]+\)\)$')
for line in input_lines:
    if match_pattern.match(line):
        print(line)

补充说明

如果是在必须用/作为正则分隔符的环境(比如JavaScript),才需要把/转义成\/,正则会变成:

/^Influenza A virus \(A(?:\/[^\/]+){3}\([^)]+\)\)$/

内容的提问来源于stack exchange,提问作者genferreri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 02:50:21