2024-04-17 22:29:53 发布
网友
我有一根绳子
"xdtwkeltjwlkejt7wthwk89lk"
如何获取字符串中第一个数字的索引?
对于解析器来说似乎是个不错的工作:
>>> from simpleparse.parser import Parser >>> s = 'xdtwkeltjwlkejt7wthwk89lk' >>> grammar = """ ... integer := [0-9]+ ... <alpha> := -integer+ ... all := (integer/alpha)+ ... """ >>> parser = Parser(grammar, 'all') >>> parser.parse(s) (1, [('integer', 15, 16, None), ('integer', 21, 23, None)], 25) >>> [ int(s[x[1]:x[2]]) for x in parser.parse(s)[1] ] [7, 89]
使用^{}:
>>> import re >>> s1 = "thishasadigit4here" >>> m = re.search(r"\d", s1) >>> if m is not None: ... print("Digit found at position", m.start()) ... else: ... print("No digit in that string") ... Digit found at position 13
这是一个更好更灵活的方式,regex在这里是过度杀戮。
s = 'xdtwkeltjwlkejt7wthwk89lk' for i, c in enumerate(s): if c.isdigit(): print(i) break
输出:
15
要获取所有数字及其位置,一个简单的表达式将
>>> [(i, c) for i, c in enumerate('xdtwkeltjwlkejt7wthwk89lk') if c.isdigit()] [(15, '7'), (21, '8'), (22, '9')]
或者你可以创建一个数字及其最后位置的dict
>>> {c: i for i, c in enumerate('xdtwkeltjwlkejt7wthwk89lk') if c.isdigit()} {'9': 22, '8': 21, '7': 15}
对于解析器来说似乎是个不错的工作:
使用^{} :
这是一个更好更灵活的方式,regex在这里是过度杀戮。
输出:
要获取所有数字及其位置,一个简单的表达式将
或者你可以创建一个数字及其最后位置的dict
相关问题 更多 >
编程相关推荐