用于检测*不*纯字母的任意字母数字(中间可能有特殊字符)的正则表达式

问题描述 投票:0回答:1

假设我们有一个带有自由文本的字符串,其中大部分是单词,但一些条目是数字或序列号或任何类似的内容:

text == """My name is Maximus Awesomeus and my phone number is +13204919920, my sort code is 01-42-42 and my ID is ZUI8012IOI1. Here is a random string that shouldn't be caught: UHAHS-IQOEQI but here is a random string that should be caught IAIUH124242JOOO-1213IH/131IOIHIO"""

在正则表达式搜索中,我想忽略所有单词,基本上找到任何可能是序列号或数字或任何类似内容的内容。在这种情况下,那就是:

+13204919920, 01-42-42, ZUI8012IOI1, IAIUH124242JOOO-1213IH/131IOIHIO

我想出了这个模式:

\b(?=.*\d)[A-Za-z0-9._@#/-+]+\b 

但是向前看,会浏览整个字符串,因此,如果字符串的其余部分甚至只有一个数字,纯字母单词也会被捕获。我不知道如何解决这个问题 - 正则表达式从来都不是强项。

python regex
1个回答
0
投票
\b(?=\S*\d)[A-Za-z0-9._@#\/+-]+\b

您的正则表达式似乎只需进行一些小更改就可以正常工作。

查看演示。

https://regex101.com/r/pHtQyH/1

© www.soinside.com 2019 - 2024. All rights reserved.