繁体   English   中英

正则表达式排除数字模式

[英]Regex to exclude number pattern

我有以下脚本,用于提取括号内的记录ID。 这也意味着忽略括号内的其他详细信息。 我遇到了一个类似这样的详细信息(YYYY-DD)的问题,其中我不确定如何排除它,因为我需要保留其他包含“-”的记录ID。 该脚本也从重要的结尾开始。

脚本:

df1['Doc ID'] = df['Folder Path'].str.extract('.*\((?!Data Only)(.*)\).*',expand=True)

我尝试添加:

[^\d\d\d\d-\d\d], (?!date_format) and neither work

请查看第三个实例,这是我的问题所在:

  Folder Path                                               Doc ID
1 report/global/(Data Only)/admin (245)                     245 #245 is kept, 'Data Only' successfully ignored
2 report/regional(PRSP)/tech/(121,130,505 - RETIRED)/2018   121,130,505 - RETIRED #successfully ignores (PRSP)
3 global/report/admin (505)/(2018-03)                       2018-03 #I cannot figure out how to avoid 2018-03 or any YYYY-DD sequence and only grab 505 in this instance

如果要从右开始,则应在您的RE中表达出来。 我建议将此作为起点:

df1['Doc ID'] = df['Folder Path'].str.extract('\(([^(]*?)\)[^)]*$',expand=True)

但这会遇到匹配日期的问题,因此让我们为此插入一个子模式:

df1['Doc ID'] = df['Folder Path'].str.extract('\(([^(]*?)\)[^)]*(?:\(\d{4}-\d{2}\))?[^)]*$',expand=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM