首页信息安全在字符串中搜索符合特定条件的子字符串

在字符串中搜索符合特定条件的子字符串

admin 12-12 16:12 77次浏览

这是我其他文章的延续:在特定条件下从字符串中提取数字

总而言之,我有一些字符串存储在数据框中,我想提取与所有条件匹配的第一个数字(如果存在)。条件如下:

数字不能在字符串的开头

它不能出现在单词“ No.”之后或单词“ Question”之后

该数字不能介于1960-2020之间

如果数字后面紧跟字母e,我想用它提取e

到目前为止,这是我找到的数字,它照顾了前两个条件:

for index, row in df.iterrows():
    test = re.search(r'(?!^)(?

我也尝试过使用:

\b(?!196[0-9]\d|20[012][0])\d+\b

来计算不在1960年和2020年之间的数字,但这似乎行不通。我也不明白如何抓住e(如果存在)。

范例1:

"Trial No. 32819 Question 485 Article 787e"

我希望正则表达式返回

[787e]

范例2:

"2981 XYZ Legislature"

我希望正则表达式返回

None

示例3”

"Addendum217Null"

我希望正则表达式返回

[217]

在此先感谢您的帮助!



1> Wiktor Strib..:

您可以使用

(?!^)(?

见正则表达式演示

新的部分是(?:

(? -当前位置的左边不允许有数字

(?!(?:19[6-9][0-9]|20[01][0-9]|2020)(?!\d))-如果当前位置右侧的数字从19602020不紧跟数字,则匹配失败的否定前行

(\d+(?!\d)e?)-第1组(您将提取的内容):1+位数字,后跟数字和可选e字母

在字符串中搜索符合特定条件的子字符串
【UCan技术开放日】讲师来了---Serverless原生容器在达达的实践和应用/杨森/达达集团 快三技巧大小单双准确率100_加导师微信一天赚500
相关内容