2014-04-26 74 views
2

这甚至可能使用Regex做到:使用正则表达式匹配之前的比赛

例如,我有2个字符串 “helhelhel”和“helhalhal

随着正则表达式([a-z]{3})+我可以匹配两个。

但我想表达的,其中

  • 第一个字符串将匹配 - 因为第一场比赛“HEL”重复3次*
  • 而第二个不匹配 - 因为第一匹配是 “HEL” 和第二&第三是不同的, “HAL

回答

0

您可以使用反向引用来匹配先前由正则表达式匹配的文本。为了做到这一点,你需要使用正则表达式提供的缓冲区。 ([a-z]{3})\1将匹配三个字母单词重复两次。 这将匹配haihai,但不匹配haihui

符号()将其内容存储到正则表达式提供的缓冲区中。 \1指的是这个缓冲区的内容。