gpt4 book ai didi

python - 正则表达式匹配字符串文字

转载 作者:行者123 更新时间:2023-11-30 22:35:25 25 4
gpt4 key购买 nike

我目前正在编写自己的语言,并且有几种不同类型的字符串文字,它们使用 3 种不同的符号来表示它们。它们在下面。

1) "Hello" 是一个简单的字符串文字,编译为 Hello

2) 'Hello' 是一个压缩字符串,访问字符串压缩函数。 (这会返回乱码)

3) `Hello` 返回由每个字符代码点构造的数字

我正在尝试使用正则表达式来匹配一段代码,例如

`Hel"lo` 2* "Hel`lo"

但无法想出一个仅当第一个和最后一个字符相同时才匹配的。我目前已经有了

[`'\"]([\s\S]+|[^`'\"]+)['`\"]

但这不会产生我想要的结果。

示例的预期结果应该是

['`Hel"lo`', ' ', '2', '*', ' ', '"Hel`lo"']

但是我的正则表达式返回

['`Hel"lo` 2* "Hel`lo"']

如果你猜不出来,我在正则表达式方面有点缺乏经验,所以我会很感激任何帮助。

最佳答案

如果您只想获取第一个分隔符和最接近的相同尾随分隔符之间的内容,您可以使用

import re
s = """`Hel"lo` 2* "Hel`lo\""""
print([x.group(2) for x in re.finditer(r"([\"'`])(.*?)\1", s)])

请参阅Python demo

详细信息:

  • ([\"'`]) - 第 1 组匹配双引号、单引号或反引号
  • (.*?) - 第 2 组捕获任何 0+ 个字符,尽可能少,直到第一次出现
  • \1 - 与第 1 组中保留的值相同(\1 是对第 1 组值的反向引用)。

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

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