【问题标题】:Match exact pattern via re.search method only仅通过 re.search 方法匹配精确模式
【发布时间】:2018-10-19 05:10:14
【问题描述】:

如何在下面的代码中搜索确切的单词“dog”?我知道它的语法错误

#!/usr/bin/python
import re
list = ["dog", "do", "dog-dumb", "no_match", "dogs"]
var2 = 'dog'

for i in list:
   match = re.search(^var2$, i)
   if match:
      print (match.group(0))

错误:

match = re.search(^var2$, i)
                      ^
SyntaxError: invalid syntax

【问题讨论】:

  • 正则表达式应该是一个字符串。所以re.search('^var2$', i)
  • 谢谢。但是在进行更改 re.search('^var2$', i) 之后,尽管脚本执行没有任何错误,但我没有得到任何输出

标签: python python-3.x list search


【解决方案1】:

如果您想搜索确切的单词dog,那么为什么还要使用正则表达式呢?使用简单的等号运算符

#!/usr/bin/python
import re
list = ["dog", "do", "dog-dumb", "no_match", "dogs"]
var2 = 'dog'

for i in list:
   if var2 == i:
      print (i)

如果你想要不区分大小写的比较,那么做

if var2.lower() == i.lower()

编辑:

如果你仍然坚持使用正则表达式,那么就这样做

#!/usr/bin/python
import re
list = ["dog", "dodog", "dog-dumb", "no_match", "dogs"]
var2 = 'dog'

for i in list:
  match = re.search("^"+var2+"$", i)
  if match:
    print (match.group(0))

【讨论】:

  • 谢谢。是否可以仅通过正则表达式 re.search 方法来实现?
  • 非常感谢。这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
相关资源
最近更新 更多