【问题标题】:Regex extract word starting with a set string and ending the line or ending with ;正则表达式提取以集合字符串开头并以该行结尾或以 ; 结尾的单词
【发布时间】:2021-11-24 10:21:44
【问题描述】:

我想从包含多个匹配相同模式的单词的字符串中提取一个或多个单词(regex python)。这是行:

new_appointment_requested;一般的; SAT-newlead

从该行中,我需要提取“SAT-”以及该单词中紧随其后的任何内容。在这种情况下,输出应该是“SAT-newlead”。它也可以是 SAT-oldlead 或完全不同的东西,一次可以有多个单词包含这种模式。捕捉所有可能的场景:

  1. 查找以“SAT-”开头的单词 (\b)
  2. 如果它是字符串中的最后一个词或唯一一个词,则提取其余的 词,
  3. 如果有 ;在单词之后(这不是最后的单词 string),抓取不带 ; 的单词
  4. 如果有多个单词与此模式匹配,则将所有实例提取为单独的单词

由于某种原因,我无法理解正则表达式,因此我们将不胜感激。

【问题讨论】:

  • 你试过regex101吗?
  • 这很棒。我在 regex101 上玩过它,但我无法让输出正常工作。感谢您提供优雅的解决方案。

标签: regex


【解决方案1】:

匹配SAT 和所有不是空格、分号或换行符的内容:

\bSAT[^ ;\n]*

live demo

【讨论】:

  • 这个解决方案也有效。感谢分享。
  • @codefame:请接受对您有帮助的答案(左侧的绿色勾号)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多