正则表达式 []内外的区别
  X5zJxoD00Cah 2023年11月02日 52 0

正则表达式 []内外的区别

my_ser = pd.Series(['1我是1\r2', '2\n\r2我是\s\r我是2', '3\s\n3\n\s3'])
# 如果元素中出现转义符或中文,则删除转义符或中文并分割,结果如下
my_result = pd.Series([['1', '1'], ['2', '2'], ['3', '3']])
# 我的解决思路是:
pattern = r'[\s]+|[\n]+|[\r]+|[\u4e00-\u9fa5]+'
my_ser.apply(lambda x: re.split(pattern, x))
# 为什么\s无法被消除
pattern = r'[\s\n\r\u4e00-\u9fa5]+'
my_ser.apply(lambda x: re.split(pattern, x))


正则表达式 []内外的区别_回车符


r'[\s]+|[\n]+|[\r]+|[\u4e00-\u9fa5]+'r'[\s\n\r\u4e00-\u9fa5]+' 之间的区别在于前者会将空白字符(包括空格、制表符、换行符等)以及中文字符都单独匹配并删除,而后者只会匹配连续的空白字符、换行符、回车符和中文字符,并将它们一起删除。

具体来说:

  1. r'[\s]+|[\n]+|[\r]+|[\u4e00-\u9fa5]+' 中的 [\s]+ 匹配一个或多个连续的空白字符,[\n]+ 匹配一个或多个连续的换行符,[\r]+ 匹配一个或多个连续的回车符,[\u4e00-\u9fa5]+' 匹配一个或多个连续的中文字符。这意味着它会将这些字符分别删除。
  2. r'[\s\n\r\u4e00-\u9fa5]+' 中的 [\s\n\r\u4e00-\u9fa5]+' 匹配一个或多个连续的空白字符、换行符、回车符或中文字符,并将它们一起删除。

因此,如果您想要删除所有这些字符,并且不关心它们是连续的还是分散的,可以使用 r'[\s\n\r\u4e00-\u9fa5]+',这样可以更简洁地实现目标。如果您想保留连续的空白字符或中文字符之间的间隔,可以使用 r'[\s]+|[\n]+|[\r]+|[\u4e00-\u9fa5]+',这将把它们分别删除。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

X5zJxoD00Cah