首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在句子中只保留一个字符的最后出现?

如何在句子中只保留一个字符的最后出现?
EN

Stack Overflow用户
提问于 2018-08-22 11:39:32
回答 5查看 76关注 0票数 1

我试图把这句话分成两栏(评论和感情)。

让我们假设我们有一句话:

嗨..。我每小时挣7点50,也就是每小时7.5美元。正向

在这里,“积极”是情绪,前者是评论。

i)如果我使用‘’,我不能使用\s作为分隔符,将句子分成两列(评论、感伤) ii)。作为分隔符,然后多次出现“.”。出现在句子里。

我已经编写了一段代码来删除“.”的多次出现。守则如下:

代码语言:javascript
复制
def clean(sentence):
  clear = re.sub(r"[,|\"|\"|\'|\'|\-|!|?|\/|*|:|\\|\(|\)|;|$]",'', sentence)
  clear1 = re.sub(r'(\W)\1+',' ', clear)
  [' '.join(clear1.split())]

可以删除“.”在"hi“一词之后,但"i.e”和"$7.50“没有出现。

我想要的结果是:

评论:嗨,我每小时赚7点50英镑,我是7点50小时

情绪:正面

我的产出是:

嗨,我每小时挣7点50,也就是7.50小时。

PS:我用熊猫把它作为两列的数据加载。

Edit1:在我的例子中,我的情绪包含“正面”或“负面”。

Edit2:,我将这个输出存储为csv文件,我正在使用(read_csv())读取

EN

回答 5

Stack Overflow用户

发布于 2018-08-22 12:01:41

如果只需要点符号的最后一次出现,可以使用以下正则表达式:

代码语言:javascript
复制
\.(?!.*\.)

示例:https://regex101.com/r/OYkupF/2

票数 1
EN

Stack Overflow用户

发布于 2018-08-22 12:09:10

查找所有单词字符组并使用以下列表:

代码语言:javascript
复制
>>> import re
>>> l = re.findall(r'\w+', s)
>>> ' '.join(l[:-1])
'Hi I earn 7 dot 50 per hour i e 7 50 hr'
>>> l[-1]
'Positive'
票数 1
EN

Stack Overflow用户

发布于 2018-08-22 11:53:21

如果情绪只是“积极”或“消极”。然后,

代码语言:javascript
复制
def clean(sentence):
    tokens = sentence.split()
    return " ".join(tokens[:-1]), tokens[-1]

它会给你一个元组,

代码语言:javascript
复制
('Hi... I earn 7 dot 50 per hour i.e $7.50/hr.', 'Positive')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51966041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档