目前正则表达式是:
[A-Z]+(?=-\d+$)
这会为大多数符合以下格式的字符串提取正确的值:
ANG-RGN-SOR-BCP-0004 i.e. BCP
但是,它会为以下文档而不是SS
提取PMR
:
ANG-B31-OPS-PMR-MACE-SS-0229
所以基本上我想拉出第四个词(在连字符之间),所以它应该选择BCP
和PMR
。
答案 0 :(得分:2)
以下正则表达式将获得第1组中的第4项:
(?:[A-Z0-9]+-){3}([A-Z0-9]+)
(?:...)
中的第一位是“非捕获组”,其作用类似于一组,但不会出现在反向引用列表中。我假设所有组都只包含大写字母和数字,您应该修改[square brackets]
中的部分来表示这些组可能是什么。
Python中更容易理解的方法:
a = "ANG-B31-OPS-PMR-MACE-SS-0229"
part = a.split('-')[3]
print part
这给出了“PMR”。
答案 1 :(得分:1)