我们的文件只包含带空格和名字的姓氏。
该文件如下所示:
Alex Roni
ToMmy Rid
Christian Olav
JohHn PeTter
Flara Sbastian
Hovard Kai
Runne Nervin
OlaAf RoOni
Olaf Roni
我们想以4种方式grep这个文件。
首先,我们希望它能找到任何姓氏姓氏以N,O,P,Q,R开头。
我写下面的代码:
(^[N-R])
第二个找到名字和姓氏都正好是4个字母。
我写下面的代码。但似乎不起作用。它必须grep Olaf Roni
(^[N-R]{4}+)([N-R]{4}+)
第3个名字和姓氏不包含s
。这是正确的,也可以。
^[^s]*$
4rd find lastname包含MacDonald
中的两个大字符。第二个大字符可以出现在名称的任何地方。
此代码也不起作用。
^(.*?[A-Z]{2,}.*)+(.*?[A-Z]{2,}.*)$
答案 0 :(得分:2)
您可以使用前瞻:
^(?=\w{4}\s\w{4}$)[N-R].*
/ [NR] /的正则表达式只匹配N,O,P,Q,R范围内的一个字符。如果使用[NR] {4},则表示要匹配4个字符范围,例如NNNN
将匹配。
对于您描述的名称,您需要:
[N-R][a-zA-Z]{3}
^^^ One letter in the range N-R
^^^ an ASCII letter
^^ proceeding match 3 times
因此,用空格分隔的两个适合该模式的名称将是:
^[N-R][a-zA-Z]{3} [N-R][a-zA-Z]{3}$
然后,您可以为您描述的其他约束添加额外的前瞻。在RexEgg HERE.
上有一个关于正则表达式前瞻的很棒的篇幅答案 1 :(得分:1)
答案 2 :(得分:0)