gpt4 book ai didi

Python 查找多个(单个字符)子串中的第一个

转载 作者:行者123 更新时间:2023-12-05 09:15:51 26 4
gpt4 key购买 nike

在字符串中查找多个单字符子串(如果有的话)中的第一个最符合 Pythonic 的方法是什么?

明确地说,一个字符串可以包含多个感兴趣的字符,我想找到第一个 - 任何一个,我不关心哪个也不需要知道哪个。我只想知道其中一个字符出现了,以及字符串中任何字符出现的第一个点(因此,显然不是建议问题的骗局)。

endDigitPos = digitText.find(['u', ' ', ')', '}', '/*'])

没有做

我一般解析 C 代码 - 任何 C 代码。我实际上是在寻找以 0x 开头的十六进制字符串;找到后,我想找到十六进制字符串的末尾,这将是一个空格、一个右括号、一个空格、一个 u(如果它是无符号的)或行尾。

digitText0x 开始并以其中一个字符结束。

上面的代码给出了

endDigitPos = digitText.find(['u', ' ', ')', '}', '/*'])
TypeError: must be str, not list

最佳答案

我不认为有什么东西可以开箱即用,但它很容易实现为正则表达式

import re

def find_many(instring, *substrings):
pat = re.compile('|'.join([re.escape(s) for s in substrings]))
match = pat.search(instring)
if match is None:
return -1
else:
return match.start()

substrings = ['u', ' ', ')', '}', '/*']
find_many('aaa/*', *substrings) # 3
find_many('aaab', *substrings) # -1
find_many('uaaa/*', *substrings) # 0

关于Python 查找多个(单个字符)子串中的第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51655301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com