python2.7, 正则表达式 查找 同时包含 字母和数字 的单词

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python2.7, 正则表达式 查找 同时包含 字母和数字 的单词相关的知识,希望对你有一定的参考价值。

text = """hello my name is mevur,i come from china 123 23w 23 wer23esdsd sadsfsa) """

m = re.findall(r"""\s(?!\d+)(?!\w+)(\w+\d+)""", text)
print(m)
结果为:[]
我希望是找到 :23w,wer23esdsd
请问我出错在哪,或者请教大神帮我实现算法,多谢

参考技术A 可以用:

\b[\da-z]*([a-z]\d|\d[a-z])[\da-z]*\b
\w可以匹配字母也可以匹配 数字!!

在字符串列表中查找特定模式(正则表达式)(Python)

【中文标题】在字符串列表中查找特定模式(正则表达式)(Python)【英文标题】:Find a specific pattern (regular expression) in a list of strings (Python) 【发布时间】:2015-06-24 03:41:17 【问题描述】:

所以我有这个字符串列表:

teststr = ['1 FirstString', '2x Sec String', '3rd String', 'x forString', '5X fifth']

我需要做的是从这个列表中获取所有包含以下内容的元素:

number + "x" 

number + "X"

例如,如果我有这个功能

def SomeFunc(string):
    #do something

我想得到这样的输出:

2x Sec String
5X fifth

我在 *** 的某个地方找到了这个函数:

def CheckIfContainsNumber(inputString):
    return any(char.isdigit() for char in inputString)

但这会返回每个有数字的字符串。

如何扩展函数以获得所需的输出?

【问题讨论】:

【参考方案1】:

re.search 函数与列表推导一起使用。

>>> teststr = ['1 FirstString', '2x Sec String', '3rd String', 'x forString', '5X fifth']
>>> [i for i in teststr if re.search(r'\d+[xX]', i) ]
['2x Sec String', '5X fifth']

\d+ 匹配一位或多位数字。 [xX] 匹配大小写 x

通过将其定义为单独的函数。

>>> def SomeFunc(s):
        return [i for i in s if re.search(r'\d+[xX]', i)]

>>> print(SomeFunc(['1 FirstString', '2x Sec String', '3rd String', 'x forString', '5X fifth']))
['2x Sec String', '5X fifth']

【讨论】:

以上是关于python2.7, 正则表达式 查找 同时包含 字母和数字 的单词的主要内容,如果未能解决你的问题,请参考以下文章

Postgres中的正则表达式查找和替换

shell脚本应用正则表达式grep,sed,awk,的应用

shell脚本应用正则表达式grep,sed,awk,的应用

book_精通正则表达式

在 python 2.7 上安装正则表达式失败,退出状态为 1 [重复]

每次下一个字符与字母/数字或下划线不同时,使用正则表达式查找一个单词