Regex 尝试查找小写字符的正则表达式匹配项,但忽略前11个字符

Regex 尝试查找小写字符的正则表达式匹配项,但忽略前11个字符,regex,bash,character,match,ignore,Regex,Bash,Character,Match,Ignore,我有一个文件,上面有这样的文字 0x8a1d4099 dfg-gw2 0x8da88e90 FVG-GW3 我想编写一个bash脚本来查看文件,但只显示第一行,而不是第二行。我只需要忽略前11个字符,并且只匹配后面包含小写字符的文本 你能帮忙吗?试试看 ^.{11}[^a-z]*[a-z]+ 从概念上讲,此模式在行首跳过11个字符,匹配任意数量的非小写字符,最后至少匹配1个小写字符。用不希望出现在匹配行中的字符补充第一个chracter类。这样的模式应该可以: ^.{11,}[a-z].*$

我有一个文件,上面有这样的文字

0x8a1d4099 dfg-gw2
0x8da88e90 FVG-GW3
我想编写一个bash脚本来查看文件,但只显示第一行,而不是第二行。我只需要忽略前11个字符,并且只匹配后面包含小写字符的文本

你能帮忙吗?

试试看

^.{11}[^a-z]*[a-z]+

从概念上讲,此模式在行首跳过11个字符,匹配任意数量的非小写字符,最后至少匹配1个小写字符。用不希望出现在匹配行中的字符补充第一个chracter类。

这样的模式应该可以:

^.{11,}[a-z].*$
或者,如果您的引擎支持Unicode字符类:

^.{11,}\p{Ll}.*$
或者,如果您的引擎支持lookaheads,则可以使用以下选项之一:

^.{11}(?=.*[a-z]).*$
^.{11}(?=.*\p{Ll}).*$

您可以分享您所做的。(注释不适用于先行变量)这是一个贪婪的前缀匹配,请注意,如果文件中的最大行结束于不应参与测试的部分(例如,如果您的文件包含2个或空格分隔的条目,小写测试应仅应用于第二部分).@collapsar恐怕我不理解你的评论。只有在行中第11个字符后出现小写字母时,两种模式才会匹配。这正是OP所要求的。OP写了“只匹配后面的文本”,我觉得这可能意味着“后面的非WS文本”。否则你当然是对的