如何匹配字符数相同的单词

时间:2009-12-20 16:39:44

标签: regex

请帮助以下

我只需要匹配字符计数相同的单词

例如,与b c相同的计数

abc ///匹配1(abc)

aabbcc match 2(abc)

adabb not mach 2(ab)

ttt匹配0(abc)

2 个答案:

答案 0 :(得分:1)

为什么要使用正则表达式?正则表达式对于某些作业来说是正确的工具,但它们过度使用,而普通的旧字符串处理可以做到这一点,可能具有更高的清晰度或效率。这是一个用Python实现的示例:

def matchCount(inputString, lettersToMatch, count) :
    matches = []

    wordsArray = inputString.split()
    for word in wordsArray:
        letterCounts = {}
        for letter in word:
            if letter in letterCounts:
                letterCounts[letter] += 1
            else:
                letterCounts[letter] = 1

        allCorrect = True
        for letter in lettersToMatch:
            if letter !in letterCounts:
                allCorrect = False
            if letterCounts[letter] != count:
                allCorrect = False

            if !allCorrect:
                break

       if allCorrect:
           matches.append(word)
 return matches

答案 1 :(得分:0)

您应该使用递归正则表达式。

以下是匹配相同数字或0 s和1 s

的Perl代码
$regex = qr/0(??{$regex})*1/;

注意:有关更多背景信息,请参阅Peteris Krumins博客上的Recursive Regular Expressions