【问题标题】:Regular Expression passing variable正则表达式传递变量
【发布时间】:2017-10-24 19:14:32
【问题描述】:

我有一个列表和 3 个字符串。我想在字符串中搜索列表变量。

str1 = 'lol cry'
str2 = 'lol'
str3 = 'cry'

l1 = ['lol', 'cry']

for wo in l1 :
    if re.match(r"^"+wo+"$|\s+wo+$", str1, re.M|re.I):
        print "yes"

我的正则表达式是错误的。我想在| 条件中添加“wo”作为变量。但我的代码将它作为一个字符串。如果我将 str1、str2、str3 传递给我的正则表达式,它必须返回 yes。

【问题讨论】:

  • 我没有得到你想要做的。您能否将您的问题连同一些示例输入和输出一起重写?
  • 当然是;您在引号中包含了wo,这与第一次出现时它是一个单独的变量不同。 r"^" + wo + "$|\s+" + wo + "$"
  • @chepner 不过,这仍然与str1 不匹配。
  • @StefanPochmann 我只是指出wo 没有被用作变量。

标签: python regex python-2.7


【解决方案1】:

我找到了一种很好的方法。

for wo in l1:
	for eo in l1:
		if re.match(r'^{0}+($|\s+{1}+$)'.format(wo, eo), str1,re.M|re.I):
			print "True"

【讨论】:

    猜你喜欢
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    相关资源
    最近更新 更多