首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用正则表达式并将Twitter中的用户名转换为"usrusr“标记

使用正则表达式并将Twitter中的用户名转换为"usrusr“标记
EN

Stack Overflow用户
提问于 2021-01-21 20:56:27
回答 1查看 26关注 0票数 0

我需要在数据帧中找到Twitter用户名,并出于道德原因将用户名转换为“usrusr”令牌。我试过这段代码:

代码语言:javascript
复制
def finduser(string):
    regex = "(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9-_]+)"
    username = (regex,string)
    return["usrusr" for x in username]

def finduserinrow(row):
    return finduser(row['text'])

annotated['new column'] = annotated.apply(finduserinrow, axis=1)
annotated.head()

但它会将new column中的所有单元格转换为[usrusr, usrusr]。但我希望推文文本留在那里,只有在推文中的用户名需要转换为usrusr令牌。我如何解决这个问题?有什么想法,有什么帮助吗?

非常感谢。

EN

Stack Overflow用户

发布于 2021-01-21 21:15:42

您可以使用

代码语言:javascript
复制
import re
#...
def finduser(string):
    return re.sub(r"(?<![a-zA-Z0-9_.-])@[A-Za-z]+[A-Za-z0-9_-]+", "usrusr", string)

请参阅regex demo

您可以使用的Pandas代码似乎是

代码语言:javascript
复制
annotated['new column'] = annotated['text'].str.replace(r'(?<![a-zA-Z0-9_.-])@[A-Za-z]+[A-Za-z0-9_-]+', 'usrusr')

正则表达式详细信息

  • (?<![a-zA-Z0-9_.-]) -紧靠当前位置左侧的位置不能有-
  • @、char
  • [A-Za-z]+、letters
  • [A-Za-z0-9_-]+_.@ - ASCII字符-一个或多个大写ASCII字符-一个或多个ASCII字母、数字、_-字符。

查看使用当前代码的Pandas测试:

代码语言:javascript
复制
>>> import pandas as pd
>>> df=pd.DataFrame({'text':['abc 12 @Sasha, @Vasya etc.', '@KnowWho...'],'text2':['abc 12 @Sasha, @Vasya etc.', '@KnowWho...']})
>>> df
                         text                       text2
0  abc 12 @Sasha, @Vasya etc.  abc 12 @Sasha, @Vasya etc.
1                 @KnowWho...                 @KnowWho...
>>> import re

>>> def finduserinrow(row):
    return finduser(row['text'])

>>> def finduser(string):
    return re.sub(r"(?<![a-zA-Z0-9_.-])@([A-Za-z]+[A-Za-z0-9_-]+)", "usrusr", string)

>>> df.apply(finduserinrow, axis=1)
0    abc 12 usrusr, usrusr etc.
1                     usrusr...
dtype: object
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65827920

复制
相关文章

相似问题

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