regex - Perl Range 命令与一个以回车符结尾的相似字符串不匹配
问题描述
Perl 中的范围命令
RANGE
/^ identifier cust_pri/ .. /addr-type-none/
匹配带有cust_pri
andcust_pri_sip
的字符串,其中回车符紧跟在字符串cust_pri
(and cust_pri_sip
) 之后。我不想要比赛,cust_pri_sip
但只想要比赛cust_pri
。
我试着把\r\n
两个都单独放进去,但都无济于事。是否有一个字符串或 metachar 我可以放入 perl 范围的末尾以帮助区分这两个字符串?
我需要查看两种类型接口的数据,但在第一个范围命令上,它也在收集数据,第二个范围命令也在收集(cust_pri_sip
)导致我的第一个脚本出错。第二个作品找到。我无法更改输入数据,我需要一种方法来区分两者。
这是主 Perl 程序的子脚本
WIDTH = 65
DIRECTORY = /home/myfiles/
MASTER Config Lines
identifier cust_pri
description *
addr prefix 0.0.0.0
network interfaces M00|1:\d*
tcp media profile
monitoring filters
node functionality
default location string
alt family realm
addr-type-none
RANGE
/^ identifier cust_pri/ .. /addr-type-none/
#
还有另一个与上面类似的子脚本
RANGE
/^ identifier cust_pri_sip/ .. /addr-type-none/
第一个脚本还收集两个脚本的数据,因为它匹配。
解决方案
您可以明确排除 _sip with/^ identifier cust_pri(?!_sip)/
或者您可以说 cust_pri 必须在行尾,后面没有任何内容/^ identifier cust_pri$/
推荐阅读
- python - 尝试不同的机器学习模型,预测的列表总是一样的
- c# - EWS 附加的电子邮件在 .Load() 之后缺少 DatatimeReceived 属性
- xaml - 如何在 Xamarin 表单中创建一个简单的工具栏以及左/右滑动动画
- c# - 从 KeyPair 字符串签名和加密
- powershell - 如何从命令行拆分内容
- replication - 通过网络复制现有的 LVM(xfs 文件系统)
- java - 使 Spring java 对象请求参数成为必需
- php - 如何从 php 中的 ImageMagick 转换命令获取图像 blob
- python - 如何使用 django rest 框架获取 csv 文件和 excel 格式(xls xlsx,..)
- vector - 如何方便地将二维数组转换为二维向量?