【问题标题】:counting number of words between two strings python regexp计算两个字符串之间的单词数python regexp
【发布时间】:2013-04-12 00:31:28
【问题描述】:

我想检查一个较大字符串中两个字符串之间的单词数是否

我按照link 进行了尝试。我的代码是

s='a quick brown fox jumps over the lazy dog'
m=re.search("'brown fox'\W+(?:\w+\W+){1,4}'lazy dog'",s)

但是没有匹配。

【问题讨论】:

  • 不要忘记像' 这样的字符不是字符类\w 的一部分,所以像\S(非空格)这样的字符可能更合适。

标签: python regex


【解决方案1】:

您正在尝试匹配单引号,但字符串中没有:

>>> re.search("brown fox\W+(?:\w+\W+){1,4}lazy dog", s)
<_sre.SRE_Match at 0x3045850>

>>> re.search("brown fox\W+(?:\w+\W+){1,3}lazy dog", s)
<_sre.SRE_Match at 0x3045920>

>>> re.search("brown fox\W+(?:\w+\W+){1,2}lazy dog", s)
(None)

【讨论】:

  • 是的,这行得通。我可以接受多个答案吗?两者(你的和 Patashu 的)都是正确的。错误与单引号匹配。
  • @rivu 您可以对两个答案都投赞成票,但您只能接受一个,因此请接受您认为更有帮助/表示付出更多努力的那个。
【解决方案2】:

试试brown fox\s+(\S+\s+){0,4}lazy dog

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-28
    • 2021-02-15
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多