Python 在某个短语之前查找字符串

Python 在某个短语之前查找字符串,python,regex,string,extract,Python,Regex,String,Extract,假设表示短语的字符串是“它在一次又一次地变化” 我想一次又一次地在“changing”之前打印出单词“changing”,但是这个单词每次都可能不同。因此,我需要一次又一次地提取短语“之前的单词。不应提取短语“神圣的是” 如何使用Python实现这一点 我考虑过使用正则表达式,比如这里的Python正则表达式来匹配之前的单词来匹配任何后跟“一次又一次”,使用这个正则表达式: ([\w]*)一次又一次 如果要包含更多字符,例如撇号,请将[\w]替换为[\w'],类似地,将其他字符替换为方括号内

假设表示短语的字符串是
“它在一次又一次地变化”

我想一次又一次地在
“changing”
之前打印出单词
“changing”
,但是这个单词每次都可能不同。因此,我需要一次又一次地提取短语
“之前的单词。不应提取短语
“神圣的是”

如何使用Python实现这一点

我考虑过使用正则表达式,比如这里的Python正则表达式来匹配之前的单词来匹配任何后跟
“一次又一次”
,使用这个正则表达式:

  • ([\w]*)一次又一次
如果要包含更多字符,例如撇号,请将
[\w]
替换为
[\w']
,类似地,将其他字符替换为方括号内的字符(有些字符需要转义)

  • 神圣的,它一次又一次地改变着
  • 我们要再玩一次,再玩一次
  • 我的天啊
  • 让我们一次又一次地走吧。我们一次又一次地走
  • 我得到了一次又一次的房间备份(需要添加“)
  • Foo一次又一次地变成了A-B-C,Bar和Baz。(需要添加转义连字符)
要查找该模式的所有匹配项,请使用

正则表达式
match=re.findall(“([\w']*)反复”,短语)
,其中
([\w']*)
是任何单词(包括撇号在内的单词字符序列)。它返回所有单词的列表,后跟“反复”

要反复匹配任何后跟
“的单词,请使用以下正则表达式:

  • ([\w]*)一次又一次
如果要包含更多字符,例如撇号,请将
[\w]
替换为
[\w']
,类似地,将其他字符替换为方括号内的字符(有些字符需要转义)

  • 神圣的,它一次又一次地改变着
  • 我们要再玩一次,再玩一次
  • 我的天啊
  • 让我们一次又一次地去。我们一次又一次地去
  • 我得到了一次又一次的房间备份(需要添加“)
  • Foo一次又一次变成A-B-C、Bar和Baz。(需要添加转义连字符)
要查找该模式的所有匹配项,请使用

正则表达式
match=re.findall(“([\w']*)反复”,短语)
,其中
([\w']*)
是任何单词(包括撇号在内的单词字符序列)。它返回所有单词的列表,后跟“反复”

这将产生:

changing
changing
changed
change
这将产生:

changing
changing
changed
change

开始时,请反复尝试此正则表达式:
“([Cc]hanging)”
,捕获
(changing)
组。附加的
[Cc]
解决了
“changing”
大写为
“changing”
的情况

  • 神圣的,它一次又一次地改变着
  • 它在一次又一次地变化,而且还在变化
  • 我在一次又一次地改变,而且还是一次又一次地改变
  • 一次又一次地改变一次又一次地改变
若要使用不同的单词,请将
([Cc]hanging)
替换为另一个单词。例如,若要在
“一次又一次”之前捕获
“going”
,请改用
([Gg]oing)

  • 我们一次又一次地前进
  • 在多次警告后反复执行将被禁止
  • 一次又一次地走,和一次又一次地走,但只是兜圈子
要反复匹配多个不同的单词,包括单词的不同形式,请使用union。要匹配
“change”
“changes”
“changing”
“changed”
“going”
,并考虑到单词大写的情况,分组部分变为
([Cc]挂起|[Cc]挂起|[Cc]挂起|[Cc]挂起|[Gg]oing)

  • 神圣的它一次又一次的改变
  • 它在一次又一次地变化仍然在一次又一次地变化
  • 我的分数一次又一次地变化,但现在我的分数没有变化,也没有去任何地方
  • 一次又一次地改变一次又一次,停止改变
  • 我们将一次又一次地改变

开始时,请反复尝试此正则表达式:
“([Cc]hanging)”
,捕获
(changing)
组。附加的
[Cc]
解决了
“changing”
大写为
“changing”
的情况

  • 神圣的,它一次又一次地改变着
  • 它在一次又一次地变化,而且还在变化
  • 我在一次又一次地改变,而且还是一次又一次地改变
  • 一次又一次地改变一次又一次地改变
若要使用不同的单词,请将
([Cc]hanging)
替换为另一个单词。例如,若要在
“一次又一次”之前捕获
“going”
,请改用
([Gg]oing)

  • 我们一次又一次地前进
  • 在多次警告后反复执行将被禁止
  • 一次又一次,和一次又一次changing changing changed change