python - 如何正则表达式避免最后匹配的字符串
问题描述
写了一个正则表达式来获取字符直到搜索到的字符。直到#
我需要提取
import re
text = '''text1
text2
text3
#text4
text5'''
print(re.search('(?s)\A.*?(\#)', text))
我的出局
<re.Match object; span=(0, 19), match='text1\ntext2\ntext3\n#'>
预期的
<re.Match object; span=(0, 19), match='text1\ntext2\ntext3'>
解决方案
只是一个使用积极前瞻的例子(?=#)
。使用以下模式:
(?s)\A.*(?=\#)
推荐阅读
- javascript - 正则表达式在第 n 个字符出现处剪切字符串并返回字符串的第一部分
- python - 在 pandas/python 的数据框中合并两列文本“与换行”
- python - pip 无法识别“-r”命令
- azure - Unique Name must be specified for each listener when multiple communication listeners are used
- postgresql - postgresql 别名并在选择中使用别名
- watson - 我无法在我的 Watson Studio 环境中创建 Visual Recognition 的自定义模型
- mongodb - 按多个条件从嵌套数组中删除对象
- vb.net - Visual Basic 将单词拆分为字母,然后找到所有元音
- sql - ERROR: column "new" of relation xyz does not exist in postgresql Trigger
- python - Python 模块在命令提示符下正常运行,但在脚本中不正常运行