gpt4 book ai didi

python - 匹配某个词之后的字符,停止匹配这个同一个词之前的字符

转载 作者:行者123 更新时间:2023-12-02 04:20:42 25 4
gpt4 key购买 nike

我希望正则表达式在出现某个单词后匹配所有字符,并在出现相同单词(或表达式结束)后停止匹配。例如,如果我想匹配“by”或“per”之后的每个字符,并在“by”或“per”再次出现时停止:

  • 按颜色和尺码订购我的衣服 => ['color and', 'size']
  • 您每周和每个类别的花费是多少? => ['周和', '类别?']

到目前为止,我已经完成了以下工作:

(by|per)\s(\w+)

但只给我一个字

最佳答案

你可以使用

\b(by|per)\s+(.*?)(?=\s*(?:\b(?:by|per)\b|$))

参见 regex demo

详情

  • \b - 单词边界
  • (by|per) - 第 1 组:byper
  • \s+ - 1+ 个空格
  • (.*?) - 第 2 组:除换行符以外的任何零个或多个字符,在第一次出现之前尽可能少...
  • (?=\s*(?:\b(?:by|per)\b|$)) - 一系列
    • \s* - 0+ 个空格
    • (?:\b(?:by|per)\b|$) - 两者之一
      • \b(?:by|per)\b - byper 整个单词
      • | - 或者
      • $ - 字符串结尾。

关于python - 匹配某个词之后的字符,停止匹配这个同一个词之前的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60013016/

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