【问题标题】:Extract acronyms patterns from string using regex使用正则表达式从字符串中提取首字母缩写词模式
【发布时间】:2018-10-05 05:43:04
【问题描述】:

我有这个问题:

list_= ["blabla S.P.A words J.R words. , words","words words !! words s.r.l words. D.T. words","words words I.B.M. words words."]

我想要:

['S.P.A', 'J.R']
['s.r.l', 'D.T.']
['I.B.M.']

我发现了这个惊人的解决方案Finding Acronyms Using Regex In Python,它返回:

['S.P.', 'J.']
['s.r.', 'D.T.']
['I.B.M.']

在我的情况下如何使用该解决方案?

谢谢

【问题讨论】:

  • (?<= )(\w+\.[^ ]+) 呢?

标签: python regex string


【解决方案1】:

您只需将最后一个期间设为可选。还要在第一个字母之前查找空格或字符串的开头以确保它不是另一个单词的一部分,并在结尾之后查找空格或字符串的结尾:

pattern = r'(?i)(?:^|(?<= ))(?:[a-z]\.)+[a-z]\.?(?= |$)'

【讨论】:

  • OP 在他的输入中没有任何数字,但如果有,只需将\ws 更改为[a-zA-Z]
  • 但是你知道什么是首字母缩写词,最好把它们变成字母。 +1
  • 它也是从AAA.B.C中提取A.B.C
  • @Jean-FrançoisFabre 哦,那太好了。
  • @TheScientificMethod 这就是(?i) 的用途,认为这比重复[a-zA-z] 两次要好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
相关资源
最近更新 更多