如何使用python正则表达式搜索行中的文本?

如何使用python正则表达式搜索行中的文本?,python,regex,Python,Regex,我想在一行中搜索一些文本。例如,文本为: {'id: 'id-::blabla1::blabal2-A'} 或 或 我想找到以下文本:A或B或C。我如何用python构建正则表达式来实现这一点?我想你指的是字典,尽管在这两种情况下你都漏掉了一个 我想这就是你想要的: import re dict = {'id': 'id-::blabla1::blabal2-A'} test = re.sub(r'.+?::.+?::.+?-(\w)',r'\1',dict['id']) 正则表达式可以简化

我想在一行中搜索一些文本。例如,文本为:

{'id: 'id-::blabla1::blabal2-A'}


我想找到以下文本:
A
B
C
。我如何用python构建正则表达式来实现这一点?

我想你指的是字典,尽管在这两种情况下你都漏掉了一个

我想这就是你想要的:

import re
dict = {'id': 'id-::blabla1::blabal2-A'}
test = re.sub(r'.+?::.+?::.+?-(\w)',r'\1',dict['id'])

正则表达式可以简化,但这是我能为您做的全部,基于此信息

您可以从以下内容开始:

{'id: 'id-(?::.*?){2}-([a-zA-Z])'} 
见:

这将是返回A、B或c的小组赛

import re

content = "{'id: 'id-::blabla1::blabal2-A'}"
pattern = re.compile('{\'id: \'id-::blabla.*?::blabal.*?-(.*?)\'}', re.S)
print re.findall(pattern, content)
*?
表示任何东西,
(.*)
表示您想要的东西

re.findall(pattern,content)
将返回一个符合正则表达式的列表。

要在任意位置或末尾查找此文本,a、B或C?
{'id: 'id-(?::.*?){2}-([a-zA-Z])'} 
([a-zA-Z])
import re

content = "{'id: 'id-::blabla1::blabal2-A'}"
pattern = re.compile('{\'id: \'id-::blabla.*?::blabal.*?-(.*?)\'}', re.S)
print re.findall(pattern, content)