正则表达式干扰码解释

时间:2011-12-25 11:42:12

标签: python regex

有人可以解释这段代码的作用吗?

def stemmer(word):
    [(stem,end)] = re.findall('^(.*ss|.*?)(s)?$',word)
    return stem

1 个答案:

答案 0 :(得分:4)

它将一个单词分为两部分:stemend。有三种情况:

  1. 该字以ss(或更多s)结尾:stem <- wordend <- ""
  2. 该单词以单s结尾:stem <- word without "s"end <- "s"
  3. 该字不以sstem <- wordend <- ""
  4. 结尾

    这是通过正则表达式完成的,该表达式捕获完整的单词(由于^....$)。第一部分(即stem)尽可能以ss.*ss)结尾,或者尽可能不尽可能(.*?) 。然后可能结尾s被视为end部分。

    请注意,在第一种情况下(尽可能以ss结尾),s部分永远不会有额外的end