python - 如何在python中表达这种非贪婪的正则表达式?

标签 python regex

s1='haha "h1" "hi"'
s2='haha "h1" "hi hi"'

我想从 s1 得到“hi”,从 s2 得到“hi hi”。

>>> re.search('".*"$',s1).group()
'"h1" "hi"'
>>> re.search('".*"$',s2).group()
'"h1" "hi hi"'
>>> re.search('"*?.*"$',s1).group()
'haha "h1" "hi"'
>>> re.search('"*?.*"$',s2).group()
'haha "h1" "hi hi"'

最佳答案

只捕获 " 之间不是 " 的所有内容:

>>> re.search('"[^"]*"$',s1).group()
'"hi"'
>>> re.search('"[^"]*"$',s2).group()
'"hi hi"'

关于python - 如何在python中表达这种非贪婪的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27943846/

相关文章:

python - VS 代码和 Python 中自动化对象的自动完成

regex - 在 Vim 中用  ‘&’ 替换  ‘\’ 不在行尾且前面没有  ‘\&’

Java - 如何读取文件的整数或 double / float

javascript - 正则表达式:不使用正向回顾的等效表达式

python - regexp_tokenize 和阿拉伯文本

python - 正则表达式提取括号括起来的 key

python - Flask - 如何重用 URL 参数替换函数?

python - 是否可以在 ReportLab 中为图像添加边框?

python - 崇高文本3 : How do I make a keybind to enable and disable Anaconda linting?

python - ncurses 文本编辑器。需要帮助文本选择