【问题标题】:can anybody tell me how to find alphanumeric in a string using regex in python the string would be "123 Akshay 123 1A1 123" i want only 1A1谁能告诉我如何在 python 中使用正则表达式在字符串中查找字母数字字符串将是“123 Akshay 123 1A1 123”我只想要 1A1
【发布时间】:2017-08-05 11:22:13
【问题描述】:
import re
S = "123 1331A1 Keshav 111a "
a = re.search("\w*[^ ]\d[^ ]*\w*[^ ]*", S).group()
print(a)

输出为123,但预期为1331A1 111a

【问题讨论】:

  • 找到你想要的部分的规则是什么?顺便说一句,您在问题主题和代码中提供了两个不同的字符串。
  • 请参阅markdown guide 了解如何发布代码 sn-ps,请不要将代码键入为没有空格的常规文本。

标签: python


【解决方案1】:

如果不需要使用正则表达式,你也可以这样做:

words = S.split()
alnumWords = filter(lambda s: isalnum(s), words)

这使用filter() 函数,该函数选择列表中满足谓词函数的那些元素。

【讨论】:

    【解决方案2】:

    使用re 模块,您可以执行以下操作:

    import re
    a = "123 1331A1 Keshav 111a "
    output = re.findall(r'(\d+[a-zA-Z]\d?)', a)
    print(output)
    

    输出:

    ['1331A1', '111a']
    

    【讨论】:

    • 我不想只为这个解决方案使用正则表达式,我想获取所有类型的字母数字单词,它不取决于大小和我何时输入 [\w\d]+[ a-zA-Z]\d?它需要所有的起始字母。
    • @AkshayBansal 使用其他变体,例如 (\d+[a-zA-Z]+\d?)(\d+[a-zA-Z]\d+?)(\d+[a-zA-Z]+\d+?),直到找到满足您需求的变体。
    • 我尝试了很多兄弟,但我从来没有成功过你能帮我再试一次吗?“123 keshav A1 Keshav 111a”
    • @AkshayBansal 你对"123 keshav A1 Keshav 111a" 的输出是什么?
    • A1,但 ans 应该适用于所有字母数字,它的意思是我接受的任何输入,例如“123 akshay 1a”
    猜你喜欢
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多