我正在寻求实现一些算法来帮助我匹配不完美的序列.
假设我有一个存储的ABBABABBA序列,我想在大量的字符流中找到"看起来像"的东西.
如果我给我的算法允许有2个通配符(差异),我怎样才能使用Regex匹配以下内容:where(和)标记差异:
A(A)BABAB(A)A
or
(B)BBA(A)ABBA
Run Code Online (Sandbox Code Playgroud)
我的困境是我希望在一大串字符中找到这些潜在的目标匹配(有缺陷).所以在这样的事情:
ABBDBABDBCBDBABDB(A(A)BABAB(A)A)DBDBABDBCBDBAB
ADBDBABDBDBDBCBDBABCBDBABCBDBABCBDBABABBBDBABABBCD
DBABCBDABDBABCBCBDBABABDABDBABCBDBABABDDABCBDBABAB
Run Code Online (Sandbox Code Playgroud)
我必须能够搜索这些"足够接近"的比赛.
括号表示:(足够好与(差异)匹配)
编辑:在此示例中更正式,如果N-2个字符与原始字符相同,则可以接受长度为N的匹配(2个差异)
我之前使用过正则表达式,但只是为了找到完美的序列 - 而不是用于'看起来像'的东西.
希望这很清楚,以获得一些建议.感谢阅读和任何帮助!
如果我有一个List(Of x)和一个List(Of y),是否可以同时迭代这两个?
就像是
for each _x as X, _y as Y in List(of x), List(of y)
if _x.item = _y.item then
'do something
end if
next
Run Code Online (Sandbox Code Playgroud)
这些列表可能具有不同的大小.
我正在使用.Net2.0,我怀疑这是我的垮台,因为我有一种感觉,LINQ可以通过加入常见id上的列表轻松解决问题.