【问题标题】:How to find the last words of every sentences如何找到每个句子的最后一个词
【发布时间】:2021-04-24 03:43:29
【问题描述】:

我正在尝试通过正则表达式从我的句子中找到所有最后的单词

我找到了这个("\b(\w+)\W*[,]$"),但它只找到最后一句话的最后一个单词。

这些是我的例句。我是 RegEx 的初学者,有人可以帮忙吗?

Yasar Osman,32,usak,Kusmak

Ali Sonmez,kayseri,76,Kanser

Kemal Basici,伊斯坦布尔,87,Kanser

Soner Mentese,伊斯坦布尔,32,Oksuruk

【问题讨论】:

  • 先用换行符split 隔离句子可能更容易,然后用正则表达式迭代地查找每个句子的最后一个单词
  • 在您尝试的模式中,逗号应该出现在末尾,对于示例字符串,您将没有匹配项。如果你想匹配最后一句之后的单词(在示例数据中它本身就是一个单词),你可以使用 ,(\w+)$ 并获取捕获组 1 的值参见 regex101.com/r/uFlzDf/1

标签: javascript python regex


【解决方案1】:

什么定义了一个词?假设一个单词由任意数量(但最少一个)字符组成,除了空格、逗号或星号。那么你的话是[^*, ]+。现在你想找到最后一个。

([^*, ]+)[*, ]*$ 的第一个捕获组是文本 sn-p 的最后一个单词。 $ 代表字符串的末尾。 [*, ]* 代表最后一个单词后任意数量的非单词字符。

查看regex101 以了解它与您的示例的匹配程度

或查看如何在 python 中使用它的示例:

import re

example = "Yasar Osman,32,usak,Kusmak"
re_match = re.search('([^*, ]+)[*, ]*$', example)
last_word = re_match.group(1)  # 'Kusmak'

【讨论】:

  • 这个解决方案解决了我的问题,感谢您的帮助和可以理解的回答 Raphael :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-26
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多