Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式:反向引用_Python_Regex_Lookahead_Backreference_Negative Lookahead - Fatal编程技术网

Python正则表达式:反向引用

Python正则表达式:反向引用,python,regex,lookahead,backreference,negative-lookahead,Python,Regex,Lookahead,Backreference,Negative Lookahead,下面是Python 2.5代码(它将单词fox替换为链接,并且避免了链接内部的替换): 重新导入 content=”“” 敏捷的布朗跳过了那只懒狗 事实上,他并不那么懒,而是追着狐狸 请参阅“狗追狐狸”图片以供参考: """ p=re.compile(r’(?!)(我不知道你的表达式为什么不起作用,我注意到的唯一一件事是开始时有一个前瞻组,这对我来说没有多大意义。这一组似乎工作得很好: import re content="""fox <a>fox</a> fo

下面是Python 2.5代码(它将单词
fox
替换为链接
,并且避免了链接内部的替换):

重新导入
content=”“”
敏捷的布朗跳过了那只懒狗

事实上,他并不那么懒,而是追着狐狸

请参阅“狗追狐狸”图片以供参考:

"""
p=re.compile(r’(?!)(我不知道你的表达式为什么不起作用,我注意到的唯一一件事是开始时有一个前瞻组,这对我来说没有多大意义。这一组似乎工作得很好:

import re

content="""fox
    <a>fox</a> fox <p fox> and <tag fox bar> 
    <a>small <b>fox</b> and</a>
fox"""

rr = """
(fox)
(?! [^<>]*>)
(?!
    (.(?!<a))*
    </a
)
"""

p = re.compile(rr, re.IGNORECASE | re.MULTILINE | re.VERBOSE)
print p.sub(r'((\g<1>))', content)
重新导入
content=“”福克斯
狐狸和狐狸
小狐狸
狐狸
rr=”“”
(福克斯)
(?! [^]*>)
(?!

(.(?!我不知道你的表达为什么不起作用,我唯一注意到的是一开始就有一个前瞻小组,这对我来说没有多大意义。这个小组似乎很有效:

import re

content="""fox
    <a>fox</a> fox <p fox> and <tag fox bar> 
    <a>small <b>fox</b> and</a>
fox"""

rr = """
(fox)
(?! [^<>]*>)
(?!
    (.(?!<a))*
    </a
)
"""

p = re.compile(rr, re.IGNORECASE | re.MULTILINE | re.VERBOSE)
print p.sub(r'((\g<1>))', content)
重新导入
content=“”福克斯
狐狸和狐狸
小狐狸
狐狸
rr=”“”
(福克斯)
(?! [^]*>)
(?!

(.(?!如果您不喜欢beautifulsoup,请尝试以下其他(X)HTML解析器之一:

html5lib
elementree
lxml

如果您计划或需要解析HTML(或变体),那么值得学习这些工具。

如果您不喜欢beautifulsoup,请尝试以下其他(X)HTML解析器之一:

html5lib
elementree
lxml


如果你计划或需要解析HTML(或变体),那么学习这些工具是值得的。

为什么要用正则表达式解析HTML?提示:HTML不能用正则表达式解析。你浪费时间去尝试。苏珊,你是否喜欢正则表达式一点也不重要。这就像拿锤子打高尔夫球,说“我没有时间去学习什么是九铁。我喜欢挥舞锤子。”这完全是一个错误的工作工具。你花了一段时间a)试图找出一个有效的正则表达式,而b)却失败了在这里写一个问题会更好地学习BeautifulSoup。这并不是说这会很难或任何事情。你很可能已经完成了。Tomalak很适合……对于一个非常相关的开玩笑的讨论,请看@Susan我很抱歉这有点失控。我理解你的意图,我相信你理解mi我也是。虽然看起来我只是对它感到骄傲,但实际上我是在帮助你。我是那个试图给你一个9号铁的家伙,而你却一直在问为什么你似乎不能用锤子走100码。我可能可以修复你的正则表达式。你也可以使用解析器。反对这样做的有效理由还没有形成。@thg435 I ch让你指出这些废话。不是每个问题都值得OP的回答。这不会自动让回答变成废话。我可以回答这个问题。我不会。因为这样做是错误的。这是一个很好的理由。OP可以使用解析器。她不会。没有给出任何理由。这是一个站不住脚的立场。为什么你是在用正则表达式做这件事吗?提示:HTML不能用正则表达式解析。你浪费时间去尝试。苏珊,你是否喜欢正则表达式一点也不重要。这就像用锤子打高尔夫,然后说:“我没有时间学什么是九铁。我喜欢用锤子。”。“对于这项工作来说,这完全是一个错误的工具。你花了一段时间a)试图找出一个有效的正则表达式,但失败了b)在这里写一个问题会更好地学习BeautifulSoup。这并不是说这会很难或任何事情。你很可能已经完成了。Tomalak很适合……对于一个非常相关的开玩笑的讨论,请看@Susan我很抱歉这有点失控。我理解你的意图,我相信你理解mi我也是。虽然看起来我只是对它感到骄傲,但实际上我是在帮助你。我是那个试图给你一个9号铁的家伙,而你却一直在问为什么你似乎不能用锤子走100码。我可能可以修复你的正则表达式。你也可以使用解析器。反对这样做的有效理由还没有形成。@thg435 I ch让你指出这些废话。不是每个问题都值得OP的回答。这不会自动让回答变成废话。我可以回答这个问题。我不会。因为这样做是错误的。这是一个很好的理由。OP可以使用解析器。她不会。没有给出任何理由。这是一个站不住脚的立场。“我不知道你的表情为什么不起作用"这也是为什么使用正则表达式解析HTML是一个坏主意的部分原因。它们总是变成维护噩梦,没有人能解决。@thg435我的代码中的正则表达式可以工作,但反向引用不能工作。请参见此处:我的正则表达式与我想要的匹配,但反向引用不能工作。@Tomalak在这种情况下,我是唯一一个o需要维护这一小段代码。问题是我不知道为什么反向引用不起作用。@Susan:从您的
findall
输出中可以看出,“fox”是第4组,而不是第3组。@Susan:在“?!”后面有一个空格不应该在那里。“我不知道您的表达式为什么不起作用”这也是为什么使用正则表达式解析HTML是一个坏主意的部分原因。它们总是变成维护噩梦,没有人能解决。@thg435我的代码中的正则表达式可以工作,但反向引用不能工作。请参见此处:我的正则表达式与我想要的匹配,但反向引用不能工作。@Tomalak在这种情况下,我是唯一一个o需要维护这一小段代码。问题是我不知道为什么反向引用不起作用。@Susan:从您的
findall
输出中可以看出,“fox”是第4组,而不是第3组。@Susan:在“?!”后面有一个空格不应该在那里。