正则表达式:匹配任意句子/行的最后 4 个单词

正则表达式:匹配任意句子/行的最后 4 个单词

你好。我想从我的 notepad++ 中的任何句子中匹配/选择最后 4 个单词。

我尝试了这个正则表达式,但不太好...有人能帮帮我吗?

搜索:[^x](x*)(\w+\w*){4}$

答案1

这应该对你有用:

[a-zA-Z]+(?:[^a-zA-Z]+[a-zA-Z]+){3}[^a-zA-Z]*$

演示与说明


在评论中回答您的问题:

  • Ctrl+H
  • 找什么:([^a-z]+[a-z]+)([^a-z]+[a-z]+)([^a-z]+[a-z]+)([^a-z]+[a-z]+)(?=[^a-z]*)$
  • 用。。。来代替:$2$4$3$1
  • 取消选中 相符
  • 查看 环绕
  • 查看 正则表达式
  • Replace all

演示与说明

解释:

([^a-z]+[a-z]+)     # group 1, 1 or more non letters followed by 1 or more letters
([^a-z]+[a-z]+)     # group 2, 1 or more non letters followed by 1 or more letters
([^a-z]+[a-z]+)     # group 3, 1 or more non letters followed by 1 or more letters
([^a-z]+[a-z]+)     # group 4, 1 or more non letters followed by 1 or more letters
(?=[^a-z]*)         # positive lookahead, optional non letters (i.e. punctuation)
$                   # end of line

屏幕截图:

在此处输入图片描述


对于前 4 个单词:

  • 找什么:^[^a-z]*([a-z]+[^a-z]+)([a-z]+[^a-z]+)([a-z]+[^a-z]+)([a-z]+[^a-z]+)
  • 用。。。来代替:$2$4$3$1

答案2

这个正则表达式可以做到: (?:\ S* \ s*){4} $

上面的在线正则表达式测试器链接包含组成表达式的元素的完整解释。

相关内容