字符串的 Python 正则表达式到字符或行尾

标签 python regex

我想要一个在特定字符或行尾停止的正则表达式。我目前有:

x = re.findall(r'Food: (.*)\|', text)

它会选择“Food:”和“|”之间的任何内容。为了添加行尾,我尝试了:

x = re.findall(r'Food: (.*)\||$', text)

但是如果文本是“Food: is great”,这将返回空。如何让这个正则表达式停在“|”还是行尾?

最佳答案

你可以使用基于否定的正则表达式 [^|]* 这意味着除 pipe 之外的任何东西:

>>> re.findall(r'Food: ([^|]*)', 'Food: is great|foo')
['is great']
>>> re.findall(r'Food: ([^|]*)', 'Food: is great')
['is great']

关于字符串的 Python 正则表达式到字符或行尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35021796/

相关文章:

python - OpenGL - 一些相交和一些非相交多边形的曲面分割

python - 为什么 Seaborn 在绘制散点图/线图时无法解释输入的列?

python - 根据其他数据帧中的列标题成员资格(按日期)在 pandas 数据帧(按日期)中设置 boolean 值

php - 在 PHP 中向正则表达式添加注释的正确方法

python - (Python 3.3)无法弄清楚为什么当值达到 5 时函数会创建无限循环

python - 属性错误 : type object 'datetime.time' has no attribute 'mktime'

java - Java 正则表达式中撇号的位置

regex - 重定向除图像以外的所有内容

regex - 需要一个字母数字的正则表达式,其中包含 1 个连字符和单词之间的空格

regex - .gitignore 文件不在一个集合中