我解决一个Python挑战问题找到的文本块在这样的大块格式XXXXXXXXX(下VS大写,不是所有X):正则表达式表达不匹配正确
jdskvSJNDfbSJneSfnJDKoJIWhsjnfakjn
我测试了以下正则表达式,并发现它正确地匹配我从本网站寻找的内容(http://www.regexr.com/):
'([az])([AZ]){3}([az])([AZ ]){3}([az])'
但是,当我尝试匹配此表达式为文本块,它只是返回整个字符串:
In [1]: import re
In [2]: example = 'jdskvSJNDfbSJneSfnJDKoJIWhsjnfakjn'
In [3]: expression = re.compile(r'([a-z])([A-Z]){3}([a-z])([A-Z]){3}([a-z])')
In [4]: found = expression.search(example)
In [5]: print found.string
jdskvSJNDfbSJneSfnJDKoJIWhsjnfakjn
任何想法?我的表情不正确?此外,如果有更简单的方式来表示该表达式,请随时通知我。我对RegEx相当陌生。
文本夹头没有匹配的子字符串。 – hwnd 2014-09-27 20:55:26
你在哪些文本上运行它?如果你在你给的例子(uBRrJZ ...)上运行它,那么你会得到None,因为hwnd说这个字符串中没有类似的组。 – BrenBarn 2014-09-27 20:56:34
对,我知道我给的例子没有。全文长度为100,000个字符,所以我只贴了一个样本。应该只有一个匹配。刚刚编辑了一个不同的样本,确实有这种模式(nJDKoJIWh) – emilylinndb 2014-09-27 21:00:20