我正在尝试使用正则表达式对某些文件进行排序。
我有一个包含以下两行的文件
NET "MBC_ADR_I1<1>" LOC = "R2";
NET "GP_O<7>" LOC = "R20";
我使用以下表达式来获取其中一行
f2MatchLoc = re.search('(LOC)[ ]+=[ ]+["]?({})'.format(f1LocValue), f2Line, re.IGNORECASE)
其中f1LocValue = R2
。但是我在这两条线上得到了一个匹配。
我试图在这里输入相同的表达方式 regex101.com
表明我的论证应该正确格式化
答案 0 :(得分:3)
\b
您需要在R2
之后使用r
,以便不存在部分匹配。见demo。也可以使用raw
或{{1}}模式。
答案 1 :(得分:1)
因为你没有条件如何结束字符串。
LOC = "R2
所以它匹配任何以LOC = "R2
LOC = "R2asd
LOC = "R2121
LOC = "R2 "
开头的内容。以下是所有有效的搜索结果
\s
简单地说,您可以使用双引号或分号来标识搜索字符串的结尾。此外,您可以替换[]
进行空白区域捕获,并且可以删除单个元素列表周围的r'(LOC)\s+=\s+"?({})"?;'
var string = "qwe/qwe/qwe/qwe//qwe/some_numbers_here_blabla.exe";
var start = string.lastIndexOf("/");
var end = string.lastIndexOf("_");
var result = string.substring(start + 1, end);