我有一个包含这样文本的文件...
0x8a1d4099 dfg-gw2
0x8da88e90 FVG-GW3
我想编写一个 bash 脚本来查看文件,但只显示第一行,而不是第二行。我只需要忽略前 11 个字符,并且只匹配后面的文本(如果它有小写字符)。
尝试
^.{11}[^a-z]*[a-z]+
从概念上讲,此模式在行首跳过 11 个字符,匹配任意数量的非小写字符,最终匹配至少 1 个小写字符。用您不希望在匹配行中出现的字符来补充第一个字符类。
像这样的模式应该有效:
^.{11,}[a-z].*$
或者,如果您的引擎支持 Unicode 字符类:
^.{11,}\p{Ll}.*$
或者,如果您的引擎支持前瞻,您可以使用以下之一:
^.{11}(?=.*[a-z]).*$
^.{11}(?=.*\p{Ll}).*$