用于grep的正则表达式:提取含恰好4个碳的SMILES行
提取符合特定条件的SMILES行的正则方案
需求明确
从包含SMILES字符串的文本文件中提取满足以下所有条件的行:
- 仅包含恰好4个碳原子(大写
C或小写c) - 允许出现的字符:数字、括号
()、等号=、井号# - 禁止出现的字符:方括号
[]、连字符-、@符号@ - 不能包含除
C/c之外的其他大写字母
解决方案命令
使用grep扩展正则表达式模式实现:
grep -E '^[^C[]@-]*([Cc][^C[]@-]*){4}$' filename
正则模式拆解
^:锚定行的起始位置[^C[]@-]*:匹配任意数量的非禁止字符——排除C/c、[、]、@、-,确保没有违规字符提前出现([Cc][^C[]@-]*){4}:精确匹配4次「一个碳原子(C或c) + 任意数量非禁止字符」的组合,保证恰好4个碳原子$:锚定行的结束位置,确保整行都符合规则
内容的提问来源于stack exchange,提问作者nightcod3r
相关产品推荐
相关产品推荐

