我有一个元素列表
Workset(Name: Ss_75_50_28_29 - Fire Alarm Systems)
Workset(Name: Ss_80 - Lifts and Escalators Systems)
Workset(Name: Ss_25_50 - Facade Access Systems)
Workset(Name: Ss_75_80_45_45 - Lightning Protection Systems)
我希望仅过滤
Ss_75_50_28_29 - Fire Alarm Systems
正则表达式模式不仅隔离了我需要的内容,而且还引入了CR
Ss\d{2}_\d{2}|_\d{2}|_\d{2}|\s+-\s\w+|\s+\w+
,并在Ss
之前占用空格。
有人可以帮助我获得正确的结果吗?
谢谢
答案 0 :(得分:1)
您可以使用1个匹配项来代替使用交替|
:
Ss_\d{2}(?:_\d{2})*\s+-\s+\w+(?:\s\w+)*
请参见regex demo | Python demo
这将匹配:
Ss_\d{2}
匹配Ss_,后跟2位数字(?:_\d{2})*
在非捕获组中重复0+次下划线,后跟2位数字\s+-\s+
匹配1+次空白字符,--再匹配1+次空白字符\w+
匹配一个字符1次以上(?:\s\w+)*
在非捕获组中重复0+次空白字符,然后重复1+次单词字符或者,如果要考虑整个字符串,则可以使用捕获组:
\AWorkset\(Name: (Ss_\d{2}(?:_\d{2})*\s+-\s+\w+(?:\s\w+)*)\)\Z
请参见regex demo | Python demo
答案 1 :(得分:0)