Can';“找不到”;无”;使用python正则表达式

Can';“找不到”;无”;使用python正则表达式,python,regex,Python,Regex,我正在编写一个表达式,它将在python中搜索某些文本 我尝试了在线pythex编辑器,它可以工作,但python中的相同表达式不起作用 表达方式: 正文: 上面提到的是标识符行中的一系列不同的可能性。它可以是上述任何一种可能性。 在解析时,我只需要标识符值(python数据类型),并去掉”、“或”、或任何其他字符 我是正则表达式的初学者,不确定我是否需要+,但在检查pythex在线编辑器时,我发现它得到了正确的结果 请帮助我确定我在哪里出错。试试: ^identifier\s*=\s*(Non

我正在编写一个表达式,它将在python中搜索某些文本

我尝试了在线pythex编辑器,它可以工作,但python中的相同表达式不起作用

表达方式:

正文:

上面提到的是标识符行中的一系列不同的可能性。它可以是上述任何一种可能性。 在解析时,我只需要标识符值(python数据类型),并去掉
”、“
”、
或任何其他字符

我是正则表达式的初学者,不确定我是否需要
+
,但在检查pythex在线编辑器时,我发现它得到了正确的结果

请帮助我确定我在哪里出错。

试试:

^identifier\s*=\s*(None).*$

标记
re.多行
是必需的

import re

s = '''one line
identifier = None ,) and
another line'''

pat = '^identifier\s*=\s*(None)+'


m = re.search(pat,s)
try:
    gr = m.group(1)
    print gr,type(gr)
except:
    print '--No match has been found--'

print '---------------------------'

m = re.search(pat,s,re.M)
try:
    gr = m.group(1)
    print gr,type(gr)
except:
    print '--No match has been found--'
结果

--No match has been found--
---------------------------
None <type 'str'>
--未找到匹配项--
---------------------------
没有一个

请向我们显示实际失败的代码。从这个描述中,它可以是任何东西-例如,可能您忘记了为regex文本指定值。为什么在
None
上使用分组和
+
运算符?您还需要匹配
identifier=none
吗?另外,文本包含一个尾随
,)
,该部分与正则表达式不匹配。@user4815162342:该部分被忽略。正则表达式不关心尾随字符。“发布的表达式对我来说很好,但还有其他问题。
re.match(“^identifier\s*=\s*(None)+”,“identifier=None,”)
很好;您需要向我们展示您正在使用的代码以及有关输入的更多详细信息,以便我们能够帮助您。这会有什么不同?OP表达式将与您的文本匹配。表达式实际上不是问题所在,它与示例文本匹配得很好。@MartijnPieters感谢您的批评。你是对的。但是,显然,这种模式应该有效。我真的怀疑问题在于模式。我想问题就在别的地方。尝试
重新导入;在交互式解释器中重新进行匹配(“^identifier\s*=\s*(None)+”,“identifier=None,)
,您会得到一个匹配对象。@MartijnPieters是的。我怀疑他正在试图构建一个编译器,这只是一个规则。我希望他能提到这一点,以便我能给他一个更好的答案:这就是为什么我投票结束这个问题;一旦OP提供了额外的细节,它就可以重新打开。
import re

s = '''one line
identifier = None ,) and
another line'''

pat = '^identifier\s*=\s*(None)+'


m = re.search(pat,s)
try:
    gr = m.group(1)
    print gr,type(gr)
except:
    print '--No match has been found--'

print '---------------------------'

m = re.search(pat,s,re.M)
try:
    gr = m.group(1)
    print gr,type(gr)
except:
    print '--No match has been found--'
--No match has been found--
---------------------------
None <type 'str'>