相关疑难解决方法(0)

如何使用正则表达式使用Python按字母顺序查找字符串?

所以我有一个挑战,我正在努力 - 找到一个字符串中最长的字母字符串.例如,"abcghiijkyxz"应该导致"ghiijk"(是的,我加倍).

我已经做了很多循环来解决问题 - 迭代整个字符串,然后为每个字符,使用lower和ord开始第二个循环.写这个循环没有任何帮助.

但是,有人告诉我,Regex对于这类事情会很棒.我的正则表达式很弱(我知道如何获取静态集合,我的前瞻性知识延伸到知道它们存在).我如何编写正则表达式以期待,并按字母顺序检查下一个字符的下一个字符?或者是否建议使用正则表达式对此类事物不实用?

编辑:普遍的共识似乎是正则表达式对于这类事情确实很糟糕.

python regex python-3.x

12
推荐指数
1
解决办法
1471
查看次数

使用正则表达式匹配递增整数的列表

是否可以匹配逗号分隔的十进制整数列表,其中列表中的整数总是递增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)

regex pcre

11
推荐指数
1
解决办法
439
查看次数

按预定义索引拆分 python 字符串

我有一个字符串,我想在特定位置将其拆分为字符串列表。分割点存储在单独的分割列表中。例如:

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)

有什么好的字符串函数可以完成这项工作,还是这是最简单的方法?

提前致谢!

python string split

1
推荐指数
1
解决办法
3731
查看次数

标签 统计

python ×2

regex ×2

pcre ×1

python-3.x ×1

split ×1

string ×1