【问题标题】:New regex module fuzzy function error value. Python新的正则表达式模块模糊函数错误值。 Python
【发布时间】:2013-07-03 18:56:35
【问题描述】:

我正在尝试新的正则表达式模块的模糊功能。在这种情况下,我希望找到所有具有

import regex

statement = 'eol the dark elf'
test_1 = 'the dark'
test_2 = 'the darc' 
test_3 = 'the black'

print regex.search('{}'.format(test_1),statement).group(0) #works

>>> 'the dark' 

print regex.search('{}'.format(test_1){e<=1},statement).group(0)

>>> print regex.search('{}'.format(test_1){e<=1},statement).group(0) #doesn't work 
                                          ^
SyntaxError: invalid syntax 

我也试过

print regex.search('(?:drk){e<=1}',statement).group(0) #works
>>> 'dark'

但是这个。 . .

print regex.search(('(?:{}){e<=1}'.format(test_1)),statement).group(0) #doesn't work
>>> SyntaxError: invalid syntax

【问题讨论】:

  • serach 之后,您只需要一个(。应该是这样:print regex.search('(?:{}){e&lt;=1}'.format(test_1)).group(0)
  • 你把要搜索的字符串放在哪里?

标签: python regex syntax-error fuzzy-search pypi-regex


【解决方案1】:

在您的第一个 sn-p 中,您忘记将 {e&lt;=1} 放入字符串中。在您的最终 sn-p 中,我认为问题在于 format 试图处理 {e&lt;=1} 本身。所以要么你使用连接:

print regex.search(test_1 + '{e<=1}', statement).group(0)

或者你通过将它们加倍来逃避文字大括号:

print regex.search('{}{{e<=1}}'.format(test_1), statement).group(0)

这可以很容易地扩展到

print regex.search('{}{{e<={}}}'.format(test_1, num_of_errors), statement).group(0)

【讨论】:

  • 我对如何将错误号设为变量感到有些困惑。假设error = 2 ...当我尝试'{e时它不起作用
  • @draconisthe0ry 我刚刚意识到,文字大括号可以通过加倍来转义。我会编辑答案
猜你喜欢
  • 2013-06-06
  • 2011-05-08
  • 1970-01-01
  • 1970-01-01
  • 2018-11-23
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 2015-09-20
相关资源
最近更新 更多