我有以下模式的字符串。
string = "'L3-OPS-AB-1499', 'L3-RBP_C-449', 'L2-COM-310', 'L2-PLT-16796'"
我的要求是使用正则表达式查找以下所有出现的模式
以 L
开头的字符串后跟一个数字
一个连字符
然后是特殊的关键字,例如“ OPS-AB”或“ PLT”或“ COM”
然后是连字符
后跟数字
例如:L3-OPS-AB-1499
我尝试了以下正则表达式,但给出了部分结果
regex = re.search("L\d-(OPS|RBP_|-AB|C)|(COM|PLT)-\d+",string)
'COM-310'
'L3-OPS-AB-1499', 'L3-RBP_C-449', 'L2-COM-310', 'L2-PLT-16796'
任何帮助将不胜感激,谢谢
答案 0 :(得分:1)
使用re.findall
>>> re.findall(r'L\d+-(?:OPS-AB|PLT|COM|RBP_C)-\d+', string)
['L3-OPS-AB-1499', 'L3-RBP_C-449', 'L2-COM-310', 'L2-PLT-16796']