string - 根据其中的 4 个连续数字分割字符串

标签 string bash shell

我有string s=A8GCB5913L6 。我想在 shell 中分成三个部分。第一部分是最多 4 个连续数字的所有字母数字字符,第二部分是 4 个连续数字,第三部分是 4 个连续数字之后剩余的部分。

上述字符串的示例:

  1. A8GCB
  2. 5913
  3. L6

我已经尝试过echo $s | grep -P '(?<!\d)\d{4}(?!\d)'但我可以在字符串中标记 4 位数字,但无法复制。

最佳答案

使用 bash:

[[ "$s" =~ ^([0-9A-Z]+)([0-9]{4})(.*) ]] && echo "${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}"

输出:

A8GCB 5913 L6

关于string - 根据其中的 4 个连续数字分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52108895/

相关文章:

Java/Android : Append multiple strings, 如果字符串为空则跳过

c# - 在 Unity Cloud Build 中执行 bash 脚本

bash - Hadoop fs -du-h 按大小对 M、G、T、P、E、Z、Y 进行排序

linux - 使用 sed 将大写字母替换为小写字母,将空格替换为下划线,然后创建一个带有结果的 xml 文件

Bash:回显以 "-"开头的字符串

shell - 如何使用 Github Actions 生成校验和并设置环境变量?

java - 如何将对象的名称保存在另一个变量中?

string - 如何删除字符串中最后一次出现的字符?

java - 如何将字符串拆分为二维数组并根据行访问每个分组?

bash - 如何为终端制作动画 bash shell 提示符?