
perl 正则表达式/^\s*(.*?)\s*\=\s*\"(.*)\"/是什么意思?
openINPUT,"c:\\cellopt\\query_reg\\db.ini";while(<INPUT>){chomp;if(/^\s*(.*?)\s*\=\s*...
open INPUT, "c:\\cellopt\\query_reg\\db.ini";
while(<INPUT>){
chomp;
if (/^\s*(.*?)\s*\=\s*\"(.*)\"/){
$$1 = $2;
}
}
close INPUT;
原程序执行有效.这个段落是原程序一部分,我查看过,原样复制过来,没有问题的. 展开
while(<INPUT>){
chomp;
if (/^\s*(.*?)\s*\=\s*\"(.*)\"/){
$$1 = $2;
}
}
close INPUT;
原程序执行有效.这个段落是原程序一部分,我查看过,原样复制过来,没有问题的. 展开
5个回答
展开全部
代码没有问题。
将db.ini文件的内容逐行读出来,并进行正则匹配,将所有符合下面匹配规则的行的等号左边有效字符串(可能会为空)作为变量的名字,并将等号右边的有效字符串作为变量的值
匹配规则是,字符串必须是以至少一个空格开头,然后有或者没有除了换行符以外的任意字符串,然后再接至少一个空格,然后是=号,然后再接至少一个空格,然后是冒号”,然后是除了换行符以外的任意字符串,最后是冒号“
将db.ini文件的内容逐行读出来,并进行正则匹配,将所有符合下面匹配规则的行的等号左边有效字符串(可能会为空)作为变量的名字,并将等号右边的有效字符串作为变量的值
匹配规则是,字符串必须是以至少一个空格开头,然后有或者没有除了换行符以外的任意字符串,然后再接至少一个空格,然后是=号,然后再接至少一个空格,然后是冒号”,然后是除了换行符以外的任意字符串,最后是冒号“
展开全部
if (/^\s*(.*?)\s*\=\s*\"(.*)\"/) #匹配文件中每一行第一个字符串且该字符串要符合这样的规则:是连续的几个相同字符=连续的几个相同字符 如aaa=aaa 或者a=bbb或者 $$$=%%%%
$$1 = $2; # 将第一个匹配的字符串设置为变量对它赋值为等号右边的字符串
如: $aaa="aaa"或者$a="bbb"
希望能满意 呵呵
$$1 = $2; # 将第一个匹配的字符串设置为变量对它赋值为等号右边的字符串
如: $aaa="aaa"或者$a="bbb"
希望能满意 呵呵
参考资料: perl编程24学时教程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/^\s*(.*?)\s*\=\s*\"(.*)\"/
文件每次读一行,上述正则表达式默认匹配$_变量,主要是为了匹配ini文件格式,该表达式匹配格式为:
空格+任意的主键值,也可没有+空格=空格+要有双引号括起来的内容
例:
no = "1234"
= "2345"
注意上面的空格个数
文件每次读一行,上述正则表达式默认匹配$_变量,主要是为了匹配ini文件格式,该表达式匹配格式为:
空格+任意的主键值,也可没有+空格=空格+要有双引号括起来的内容
例:
no = "1234"
= "2345"
注意上面的空格个数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这段perl脚本是有问题的,要想打印出真正的$符号,必须要用到转义符\,所以应改写成
if (/^\s*(.*?)\s*\=\s*\"(.*)\"/){
\$$1 = $2;
至于含义,我认为应该是:
然后把其中每一行 xxxx xxxx="BxxxBxxBx" 的内容
赋值变量$xxxx xxxx=BxxxBxxBx,我在perl 5.8.6中试过
if (/^\s*(.*?)\s*\=\s*\"(.*)\"/){
\$$1 = $2;
至于含义,我认为应该是:
然后把其中每一行 xxxx xxxx="BxxxBxxBx" 的内容
赋值变量$xxxx xxxx=BxxxBxxBx,我在perl 5.8.6中试过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将db.ini文件的内容读出来。
然后把其中每一行 AAA=BBB 的内容
赋值变量$AAA=BBB
然后把其中每一行 AAA=BBB 的内容
赋值变量$AAA=BBB
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |