关于正则表达式,我有一个相当基本的问题.
我使用表达式.*而不考虑它匹配期望匹配,例如直到最后一行.这有效.
但出于某种原因,我开始考虑这个表达.检查 Wikipedia(我的重点)
我使用表达式.*而不考虑它匹配期望匹配,例如直到最后一行.这有效.
但出于某种原因,我开始考虑这个表达.检查 Wikipedia(我的重点)
. Matches any single character * Matches the **preceding** element zero or more times
所以现在根据这个定义,为什么不.*尝试匹配字符串中的第一个字符0次或更多次,而是尝试将匹配应用于字符串中的每个字符?
我的意思是如果我有abc它应该尝试匹配a,aa,aaa等对吗?
但它没有:
~ $perl -e ' > my $var="abcdefg"; > $var =~ /(.*)/; > print "$1\n";' abcdefg
解决方法
混淆开始于匹配**前**元素中的单词“element”零次或多次.术语“在前元素”在这里指的是“在先模式”而不是“在前捕获”(或“在前匹配”).