Perl正则表达式处理换行

Perl正则表达式处理换行usestrict;
my$values;
open(OUTFILE,”file.txt”)ordie(“Can’tfindfile.txt:$!”);
while(defined($values=)){
#print$values;
if($values=~/.*UserName:(.*);(.*)/ms){
print$1;

大家好,又见面了,我是你们的朋友全栈君。

use strict; 
my $values ;
open(OUTFILE,"file.txt") or die("Can't find file.txt:$!") ;
while(defined($values= <OUTFILE>)){
# print $values ;
if($values =~ /.*User Name:(.*);(.*)/ms){
print $1;
print $2;
}}

我的file.txt内容为:
Logon Failure:
User Name:lixin;
Domain:BEIM-SERVER;
Reason:Unknown user name or bad password!
问题:按照我的程序匹配之后,本应$1得到的是lixin,$2得到的是后面所有的内容。

但此时$2只得到个换行,后面两行内容并未得到。

这是因为$values= <OUTFILE>只读取了一行,$/ 中保存这输入行记录分隔符(它的默认分隔符是/n)。因此,每当菱形运算符用于读取数据时,它将一直读取数据,直到它发现与$/一致的字符。所以,如果我们将$/设为 undef ,菱形运算符将读取整个文件并将它们存储在标量中。

要想让perl“吞吃文件”,可以改成这样:

use strict;
my $values ;
open(OUTFILE,"file.txt") or die("Can't find file.txt:$!") ;
$/ = undef; # 此行注掉后,$values 仅读入Logon Failure:
while(defined($values= <OUTFILE>)){
# print $values ;
if($values =~ /.*User Name:(.*);(.*)/ms){
print $1;
print $2;
}}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139716.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 坚果课堂回顾:团队项目管理&SOP打造顶尖执行力

    坚果课堂回顾:团队项目管理&SOP打造顶尖执行力【摘要】:已经非常努力高效的利用时间了,可为什么事情还是做不完?todolist产生的速度,超过能处理完成事情的速度? 作为知识密集型行业的代表人群,律师行业始终在探索如何高效利用时间,在有限的时间内创造出更多价值。在律师行业效率变革的驱动下,秉承效率至上的云盘服务提供商坚果云,一直致力于助力律师行业找到高效工作方式。在6月12日…

    2022年5月22日
    40
  • BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)

    BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)BH1750FVI是一款数字型光强度传感器集成芯片,内部由光敏二极管、运算放大器、ADC采集、晶振等组成。PD二极管通过光生伏特效应将输入光信号转换成电信号,经运算放大电路放大后,由ADC采集电压,然后通过逻辑电路转换成16位二进制数存储在内部的寄存器中(注:进入光窗的光越强,光电流越大,电压就越大,所以通过电压的大小就可以判断光照大小,但是要注意的是电压和光强虽然是一一对应的,但不是成正比的,所以这个芯片内部是做了线性处理的,这也是为什么不直接用光敏二极管而用集成IC的原因)。

    2022年6月2日
    141
  • github开源项目地址「建议收藏」

    github开源项目地址「建议收藏」github开源项目地址

    2022年7月16日
    30
  • python动力学_用python学振动分析(一)

    python动力学_用python学振动分析(一)因为最近需要重新用到pytorch,而且在颤振分析时遇到一些不理解的问题,所以用python重新学习了振动分析(程序太长就不放这里了,回头整理下放github算了),准备自己手撸一个时域结构动力学仿真程序。结构动力学基础噪音来自部分振动能量在空气中发散,故噪音和振动问题的研究方向是一致的,而振动问题的研究基础是结构动力学。静力学研究在定力作用下的位移,基础是外驱力和静刚度引起的回弹力的平衡,动力学…

    2022年10月16日
    3
  • gFortran的使用

    gFortran的使用Fortran编程中相关文件后缀.a静态库(archive).f,.for,.FOR.ftn*,.f90*,.f95*,.f03*Fortran源代码(不需编译预处理).F,.fpp,.FPP.FTN*,.F90*,.F95*,.F03*Fortran源代码(需要编译预处理).rFortran源代码(需要…

    2025年6月22日
    2
  • 【三万粉丝终极福利】Python、C、Java三大语言学习路线和资源整理

    大家好,我是辣条。今天给大家带来三万粉丝三大语言学习路线和资源整理,收藏就对了。目录C语言学习路线学习书籍学习视频资源推荐Java语言学习路线学习书籍学习视频资源推荐Python语言学习路线学习书籍学习视频资源推荐C语言学习路线学习书籍学习视频资源推荐Java语言学习路线学习书籍学习视频资源推荐Python语言学习路线学习书籍学习视频资源推荐

    2022年4月6日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号