address='''No-33-6,BEML Layout,Basaveshwaranagara 8th Main,Kamala Nagar,Near Academy Of Science and Knowledge,Bengaluru,Karnataka 560079'''
我尝试使用以下模式。但是。*匹配所有字符
re.findall('[n][o].*',adress)
根据第一个数字(否)和最后一个数字的6位数字的个人密码/邮政编码进行匹配
output:No-33-6,BEML Layout,Basaveshwaranagara 8th Main,Kamala Nagar,Near Academy Of Science and Knowledge,Bengaluru,Karnataka 560079
答案 0 :(得分:3)
如果我正确理解了您的查询,则希望匹配以以下开头的字符串模式
否
以最后一个6位数字的密码/邮政编码结尾
即560079
以及之间的所有文本。
您可以按照以下步骤实现:
import re
address='''No-33-6,BEML Layout,Basaveshwaranagara 8th Main,Kamala Nagar,Near Academy Of Science and Knowledge,Bengaluru,Karnataka 560079'''
matches = []
matches = re.findall(r'\b(?=No)(.*)\b(\d{6,})\b', address)
这将返回:
[(''No-33-6,BEML布局,Basaveshwaranagara 8th Main,Kamala Nagar,靠近科学与知识学院,孟加拉国,卡纳塔克邦','560079']]
答案 1 :(得分:0)
以下内容如何?
([N][o]).*\b([0-9].....).*?$
这对您有用吗?应该根据您尝试过的正则表达式匹配第一个单词,然后捕获地址中的最后6位数字。您可以在这里https://regex101.com
进行测试答案 2 :(得分:0)
re.findall('/No.+\d+/g', string_to_search)
从头到尾:
首先,我们要匹配前缀“否”,因此我们只使用两个不带方括号或方括号的字母。
接下来,我们必须确保在数字后缀。在大多数情况下,该数字的长度不会改变,但是我的答案包含了一种用于任何长度整数的方法。
如果两者都存在,则匹配为true。
因此,我们要收集内部的所有信息。这是通过.+
完成的,这意味着“一个或多个字符(换行符除外)”