验证字段结构的正则表达式

Regular expression to validate field structure

我想在 linux 中实现一个正则表达式,使用 grep 可以验证一个字段包含 15 个数值,并且占据第五个位置(从左开始)的值是 5或 6.

我已经达到了定义它最多包含 15 个值的要求,但是,我无法确定占据第五个位置的那个是 5 还是 6。它将是:

grep -E "^[0-9]{1,15}"

有什么想法吗?

正好有 15 个数字,第 5 个位置是 5 或 6:

grep -E "^[0-9]{4}[56][0-9]{10}$"
  • ^ 字符串开头
  • [0-9]{4}匹配4位数字
  • [56] 匹配 56
  • [0-9]{10} 匹配 10 个数字
  • $ 字符串结束

至少匹配前 5 个字符和后面的 0-10 个数字,并允许部分匹配,例如在 12346222223333344444

中匹配 123462222233333
grep -Eo "^[0-9]{4}[56][0-9]{0,10}"