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

如何在Bash中匹配包含未知长度数字的特定格式字符串

如何在Bash中匹配包含未知长度数字的特定格式字符串

别担心,你的问题我完全明白啦!其实用grep结合正则表达式就能轻松解决这个需求,完全不需要换其他工具~

你要匹配的是「以s(或S)开头,中间跟着任意数量的数字,最后以e(或E)结尾」的字符串,这里给你几个实用的命令方案:

基础匹配(小写s/e,中间至少1个数字)

如果你只需要匹配小写的s和e,中间必须有至少一个数字,用这个命令:

grep 's[0-9]\+e' 你的文件名.txt

语法解释:

  • s:精准匹配小写字母s
  • [0-9]:匹配任意单个数字(也可以用\d,不过部分环境里[0-9]兼容性更好)
  • \+:表示前面的数字可以出现1次或多次(这是基础正则BRE的写法,需要加反斜杠)

简洁版扩展正则写法

如果觉得反斜杠麻烦,可以用扩展正则ERE模式,加-E参数,语法更直观:

grep -E 's[0-9]+e' 你的文件名.txt

这里的+直接表示前面的数字出现1次或多次,不用加反斜杠,可读性更高。

大小写不敏感匹配

如果需要同时匹配大写的S/E和小写的s/e,只需要加-i参数忽略大小写:

grep -Ei 's[0-9]+e' 你的文件名.txt

拿你给出的示例内容测试的话,执行上面的命令后,两行包含s838e和s9e的内容都会被正确匹配出来哦。

要是你还需要匹配中间可能有0个数字的情况(比如se),只需要把+换成*就可以了,不过看你的例子应该是至少有一个数字,所以用+更贴合需求。

备注:内容来源于stack exchange,提问作者UnitedKingdom

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 15:38:07