这个perl正则表达式的含义是什么?

这个perl正则表达式的含义是什么?,第1张

概述the regex expression is as below:if ($ftxt =~ m|/([^=]+)="(.+)"|o) { ..... } 这个正则表达式似乎与许多其他正则表达式不同.让我困惑的是“|” ,大多数正则表达式使用“/”而不是“|”.而且,group([^ =])也让我感到困惑.我知道[^ =]的意思是“字符串的开头”或“=”,但是重复’^’一次或多
the regex Expression is as below:if ($ftxt =~ m|/([^=]+)="(.+)"|o)   {    .....   }

这个正则表达式似乎与许多其他正则表达式不同.让我困惑的是“|”,大多数正则表达式使用“/”而不是“|”.而且,group([^ =])也让我感到困惑.我知道[^ =]的意思是“字符串的开头”或“=”,但是重复’^’一次或多次是什么意思?,怎么解释这个?

解决方法 您可以使用不同的分隔符而不是/.例如,您可以使用:

m#/([^=]+)="(.+)"#o

要么

m~/([^=]+)="(.+)"~o

使用与/不同的东西的优点是你不必转义斜杠,因为否则,你必须使用:

m/\/([^=]+)="(.+)"/o  ^

[要么 [/]]

([^ =])是一个捕获组,在里面,你有[^ =]. [^ =]是一个否定的类,将匹配任何不是a =的字符.

^在字符类的开头表现不同,并且与字符类之外的^不同,这意味着“行首”.

至于最后一部分o,这是一个我到目前为止还没有见过的旗帜,所以一点搜索带我到this post,我引用:

The /o modifIEr is in the 07001 documentation instead of the 07002 documentation since it is a quote-like modifIEr rather than a regex modifIEr. That has always seemed odd to me,but that’s how it is.

Before Perl 5.6,Perl would recompile the regex even if the variable had not changed. You don’t need to do that anymore. You Could use /o to compile the regex once despite further changes to the variable,but as the other answers noted,qr// is better for that.

总结

以上是内存溢出为你收集整理的这个perl正则表达式的含义是什么?全部内容,希望文章能够帮你解决这个perl正则表达式的含义是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1222593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存