Regex 使用任何程序查找字符串中的特定模式(序列)

Regex 使用任何程序查找字符串中的特定模式(序列),regex,string,search,match,Regex,String,Search,Match,我需要任何方法(使用任何免费程序)在字符串中查找模式 例如: 我搜索12321 字符串为dkaowkdlertrelkjh searchstring有一个特定的模式(第一个和最后一个字符相同,第二个和第四个相同,第三个不同于所有其他字符) 在字符串中,这与部分ertredkaowkdl**ertre**lkjh匹配,因为它遵循相同的模式 你知道怎么做吗?你可以自己写。这并不难,我们所要做的就是找到如何匹配重复组。我是一名python程序员,所以我的解决方案是基于python 在的帮助下,我们发现

我需要任何方法(使用任何免费程序)在字符串中查找模式

例如:

我搜索
12321

字符串为
dkaowkdlertrelkjh

searchstring有一个特定的模式(第一个和最后一个字符相同,第二个和第四个相同,第三个不同于所有其他字符)

在字符串中,这与部分
ertre
dkaowkdl**ertre**lkjh
匹配,因为它遵循相同的模式


你知道怎么做吗?

你可以自己写。这并不难,我们所要做的就是找到如何匹配重复组。我是一名python程序员,所以我的解决方案是基于python

在的帮助下,我们发现我们可以这样命名匹配的组
(?p…)
,然后像
(?p=name)
那样对其进行寻址

就是这样。 我们将使用字母模式(而不是数字)作为模式描述符-这有点简单,并使我们能够在内存中存储更多的组

import re

def GenerateRegexp(patternDescription, anySequence='.+'):
  '''
  Creates string regexp, that will describe our ABCAB-pattern in terms of regexp
  '''
  used = []
  regexp = ""
  for character in patternDescription:
     if character not in used:
        regexp += "(?P<%s>%s)" % (character, anySequence)  # we should be more attentive here if we expect % here, we can use str.format instead, but still might have a problem with {} symbols
        used.append(character)
     else:
        regexp += "(?P=%s)" % character
  return regexp

def Matches(string, pattern):
    '''
    Returns a bool answer, wheter string matches our pattern
    '''
    r = generate_regexp(pattern)
    SearchPattern = re.compile(r)
    return bool(SearchPattern.match(string))

如果没有模式呢?它应该如何匹配12345?应该说这个模式不存在。。但事实并非如此。。我正在一个很长的字符串中搜索一个特定的模式,我知道这个模式是存在的。但是我不知道怎么找到它。。
print Matches (patternDescription="abab", string="aabbaabb")