python正则表达式:匹配数字和字母的表达式
其目的是打印所有不以python正则表达式:匹配数字和字母的表达式,python,regex,string,Python,Regex,String,其目的是打印所有不以“\u C[任何数字+字母]”结尾的内容 输出: chrome_PM chrome_P chromebike_P1 chromecar_CMale 我如何编辑代码以避免打印“chromecar_CMale” 这应该就可以了。我会扩展regexp以接受单词([0-9a-zA-Z_]): 当然,这将接受字母或数字的任意组合。如果只想将其限制为字母或数字,可以执行以下操作: re.compile('_C(\d+|[a-zA-Z]+)$') 更改您的正则表达式,如下所示 >
“\u C[任何数字+字母]”
结尾的内容
输出:
chrome_PM
chrome_P
chromebike_P1
chromecar_CMale
我如何编辑代码以避免打印“chromecar_CMale”
这应该就可以了。我会扩展regexp以接受单词([0-9a-zA-Z_]): 当然,这将接受字母或数字的任意组合。如果只想将其限制为字母或数字,可以执行以下操作:
re.compile('_C(\d+|[a-zA-Z]+)$')
更改您的正则表达式,如下所示
>>> import re
>>> name_list = ['chrome_PM', 'chrome_P', 'chromerocker_C', 'chromebike_P1',
'chromecar_CMale', 'chromeone_C1254']
>>> for name in name_list:
if re.search(r'^(?!.*(?:_C\d+|_C)$)(?=.*_C)', name):
print(name)
chromecar_CMale
说明:
断言我们处于起点^
此负面前瞻断言不会有类似于(?!.*(:_C\d+|u C)$)
一个或多个数字或\u C
紧接着一个线锚的结尾\u C
断言必须存在类似于(?=.*u-C)
的子字符串\u-C
- 仅当满足上述条件时,才匹配字符串开始
- 上面的正则表达式将写为
^(?。*.\u C(\d+)$)(?=.*u C)
- 让我们把逻辑颠倒过来。你正在搜索你不想要的东西,并将它们过滤掉。为什么不去寻找你想要的东西呢
您的regexp可以如下所示:
\u C[A-Za-z]+[\D]
,其中:
是您需要的起始C\u C
多次匹配任何小写/大写字母[A-Za-z]+
排除了字母后面的数字,从而避免了像[\D]
这样的匹配内容。注:大写字母chromecar\u CM123
是速记\D
\D
重新导入
def regexer():
名称列表=['chrome_PM'、'chrome_P'、'chromerocker_C'、'chromebike_P1',
‘chromecar_CMale’、‘chromeone_C1254’]
counts_tail=re.compile(''u C[A-Za-z]+[\D]')#在此处构建regexp-无需在循环中进行
对于名称列表中的名称:
如果计算尾部搜索(名称):
印刷品名称
下面是正在运行的regexp:
你想要
“chromeone_C1254”
?这有点让人搞不清楚你在做什么。您当前正在打印未捕获的内容?不清楚您是否要捕获:[anyletter][number sequence]
或\u C[number+letter sequence]
。不要每次在循环中编译该模式。我正在打印任何不以“\u C[anynumber+letter]结尾的内容你应该考虑解释你的代码所做的事情。)好东西!我喜欢你投入其中的消极想法。这不是OP想要的!这正是我想要的。它抓住了任何元素,以“任何数字/字母”结尾。“@Boosted_d16我没有否决票,但是,这个正则表达式任何数字和字母的组合都只包含字母@它捕获任何以“\u C[任何数字/字母]”结尾的元素,那么为什么您不想要chromeone\u C1254
?@Kasra-我捕获给定元素是为了避免它们。
re.compile('_C\w+$')
re.compile('_C(\d+|[a-zA-Z]+)$')
>>> import re
>>> name_list = ['chrome_PM', 'chrome_P', 'chromerocker_C', 'chromebike_P1',
'chromecar_CMale', 'chromeone_C1254']
>>> for name in name_list:
if re.search(r'^(?!.*(?:_C\d+|_C)$)(?=.*_C)', name):
print(name)
chromecar_CMale