输入:
gis.google.com
CAT
DOG
gis1.goole.com
CAT gis.google.com
gis.google.com DOG
我使用下面的正则表达式来匹配每行的prticlar模式。
/^[\w]+\s+[\w]+[\.][\w]+[\.][\w]+$/mg
下面是匹配
DOG
gis1.goole.com
CAT gis.google.com
但我想只匹配一行
CAT gis.google.com
请帮我解决一下。提前谢谢!
答案 0 :(得分:1)
将\s+
替换为\h+
,其中\s
将匹配空格和换行符,但\h
仅匹配水平空格。这就是为什么连续的两条线(DoG和它的跟随线)匹配的原因。并且还从正则表达式中删除所有不必要的字符类。
^\w+\h+\w+\.\w+\.\w+$
答案 1 :(得分:0)
你是如何使用正则表达式的?
它可以简化一点,但是当使用逐行处理完成时它可以工作:
while (<DATA>) {
print if /^\w+\s+\w+[.]\w+[.]\w+$/;
}
__DATA__
gis.google.com
CAT
DOG
gis1.goole.com
CAT gis.google.com
gis.google.com DOG
输出:
CAT gis.google.com