所以我有一个挑战,我正在努力 - 找到一个字符串中最长的字母字符串.例如,"abcghiijkyxz"应该导致"ghiijk"(是的,我加倍).
我已经做了很多循环来解决问题 - 迭代整个字符串,然后为每个字符,使用lower和ord开始第二个循环.写这个循环没有任何帮助.
但是,有人告诉我,Regex对于这类事情会很棒.我的正则表达式很弱(我知道如何获取静态集合,我的前瞻性知识延伸到知道它们存在).我如何编写正则表达式以期待,并按字母顺序检查下一个字符的下一个字符?或者是否建议使用正则表达式对此类事物不实用?
编辑:普遍的共识似乎是正则表达式对于这类事情确实很糟糕.
是否可以匹配逗号分隔的十进制整数列表,其中列表中的整数总是递增1?
这些应匹配:
0,1,2,3
8,9,10,11
1999,2000,2001
99,100,101
Run Code Online (Sandbox Code Playgroud)
这些不匹配(完整 - 最后两个具有匹配的子序列):
42
3,2,1
1,2,4
10,11,13
Run Code Online (Sandbox Code Playgroud) 我有一个字符串,我想在特定位置将其拆分为字符串列表。分割点存储在单独的分割列表中。例如:
test_string = "thequickbrownfoxjumpsoverthelazydog"
split_points = [0, 3, 8, 13, 16, 21, 25, 28, 32]
Run Code Online (Sandbox Code Playgroud)
...应该返回:
>>> ['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经把这个作为解决方案,但对于任务的简单性来说,它看起来非常复杂:
split_points.append(len(test_string))
print [test_string[start_token:end_token] for start_token, end_token in [(split_points[i], split_points[i+1]) for i in xrange(len(split_points)-1)]]
Run Code Online (Sandbox Code Playgroud)
有什么好的字符串函数可以完成这项工作,还是这是最简单的方法?
提前致谢!