gpt4 book ai didi

python - 用正则表达式查找多个字符串

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:11 26 4
gpt4 key购买 nike

我正在寻找一种 OR 功能来使用正则表达式匹配多个字符串。

# I would like to find either "-hex", "-mos", or "-sig"
# the result would be -hex, -mos, or -sig
# You see I want to get rid of the double quotes around these three strings.
# Other double quoting is OK.
# I'd like something like.
messWithCommandArgs = ' -o {} "-sig" "-r" "-sip" '
messWithCommandArgs = re.sub(
r'"(-[hex|mos|sig])"',
r"\1",
messWithCommandArgs)

这有效:

messWithCommandArgs = re.sub(
r'"(-sig)"',
r"\1",
messWithCommandArgs)

最佳答案

方括号用于只能匹配单个字符的字符类。如果要匹配多个字符替代项,则需要使用组(括号而不是方括号)。尝试将您的正则表达式更改为以下内容:

r'"(-(?:hex|mos|sig))"'

请注意,我使用了非捕获组 (?:...) 因为您不需要另一个捕获组,但是 r'"(-(hex|mos| sig))"' 实际上会以相同的方式工作,因为 \1 仍然是除引号之外的所有内容。

您也可以使用 r'"-(hex|mos|sig)"' 并使用 r"-\1" 作为替换(因为 >- 不再是该组的一部分。

关于python - 用正则表达式查找多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10986325/

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