您可以不使用正则表达式来执行此操作。拆分管道字符上的字符串,使用生成器表达式和inbuild string.isalpha()函数筛选出仅为字母字符的单词,并将它们连接起来以形成最终输出:old_fruits = 'apple|0.00|kiwi|0.00|0.5369|-0.2437|banana|0.00|pear'

words = (word for word in old_fruits.split('|') if word.isalpha())

new_fruits = '\n'.join(words)

print(new_fruits)

输出是

^{pr2}$

如您所愿(不是写入文件,但我认为您能够处理)。在

编辑:创建了一个快速脚本,以提供正则表达式与非正则表达式的时间比较:import timeit

# Setup - not counted in the timing so it doesn't matter we include regex for both tests

setup = r"""old_fruits = 'apple|0.00|kiwi|0.00|0.5369|-0.2437|banana|0.00|pear'

import re

fruit_re=re.compile(r'[^\W\d]+')

"""

no_re = r"""words = (word for word in old_fruits.split('|') if word.isalpha())

new_fruits = '\n'.join(words)"""

with_re = r"""new_fruits = '\n'.join(fruit_re.findall(old_fruits))"""

num = 10000

print("Short input")

t = timeit.timeit(no_re, setup, number=num)

print("No regex: {0:.2f} microseconds to run".format((t*1e6)/num))

t = timeit.timeit(with_re, setup, number=num)

print("With regex: {0:.2f} microseconds to run".format((t*1e6)/num))

print("")

print("100 times longer input")

setup = r"""old_fruits = 'apple|0.00|kiwi|0.00|0.5369|-0.2437|banana|0.00|pear'*100

import re

fruit_re=re.compile(r'[^\W\d]+')"""

t = timeit.timeit(no_re, setup, number=num)

print("No regex: {0:.2f} microseconds to run".format((t*1e6)/num))

t = timeit.timeit(with_re, setup, number=num)

print("With regex: {0:.2f} microseconds to run".format((t*1e6)/num))

我电脑上的结果:Short input

No regex: 18.31 microseconds to run

With regex: 15.37 microseconds to run

100 times longer input

No regex: 793.79 microseconds to run

With regex: 999.08 microseconds to run

因此,预编译的正则表达式在短输入字符串上更快,对于较长的输入字符串,生成器表达式更快(至少在我的计算机上-UbuntuLinux,Python2.7-结果可能因您的而异)。在

python里边的单词都表示什么_Python:只保留字符串中的单词,每个单词都在newlin上...相关推荐

  1. python输出用逗号隔开的数字_Python:从字符串中提取带有点和逗号的数字

    我正在分析Python中的单词和数字.我只对数字感兴趣,即只对0到9.点(.)和逗号(,)感兴趣.我对保留点和逗号很感兴趣,因为有些文件是用美式数字(即3.14159)编写的,而有些文件是用欧洲(德语 ...

  2. python怎么处理中英文符号网名_python如何解析字符串中出现的英文人名?

    这里有四个例子,结果来自google scholar 1 2 3 4str1 = "Jakes, William C., and Donald C. Cox. Microwave mobil ...

  3. python从收货信息,寄件信息等字符串中,获取姓名

    python从收货信息,寄件信息等字符串中,获取姓名 python代码: def getUserName(address):firstNames = {"赵","钱&qu ...

  4. python大括号_如何在python字符串中打印文字大括号字符并在其上使用.format?

    如何在python字符串中打印文字大括号字符并在其上使用.format? x = " \{ Hello \} {0} " print x.format(42) 给我:{Hello} ...

  5. 编写程序将字符串中最长的单词输出

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p241 习题7 8.写一个函数,输入一段英文,将此字符串中最长的单词输出 #include<st ...

  6. 每天一道LeetCode-----以单词为单位逆序字符串,每个单词之间以一个空格分隔(原字符串中可能有多个空格)

    Reverse Words in a String 原题链接Reverse Words in a String 将字符串以单词为单位逆序,每个单词之间以一个空格间隔(原字符串中可能有多个空格) 逆序的 ...

  7. java小编程----反转字符串中的每一个单词

    package com.henu.four;public class Test07_3 {// String str= "abc god 中国 java"(较难) 反转每个单词pu ...

  8. 统计字符串中出现最多的单词和次多的单词

    题目:统计字符串中出现最多的单词和次多的单词. 测试用例:"This This This a dog,not a cat!" 输出:This  3次  a  2次 思路:先把这个字 ...

  9. 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数.

    /2.用一个函数来实现将一行字符串中最长的单词输出.此行字符串从主函数传递给该函数./ #include <stdio.h> #include <string.h> int m ...

最新文章

  1. 去掉[]中的英文(正则表达式)C#
  2. 在 Ubuntu 下安装 Discuz! 7.0
  3. conda (picard)
  4. 文件上传 java web_JavaWeb 文件上传下载
  5. 删除目录下的特定命名的图片,获取特定名称图片的路径
  6. 排序 (2)快速排序
  7. 首次统一卷积与自注意力,X-volution发力网络核心基础架构创新
  8. leetcode 86. 分隔链表(链表)
  9. 从 AI、芯片到量子计算,阿里达摩院发布 2020 十大科技趋势
  10. Android 系统性能优化(37)---Android内存优化之一:MAT使用入门
  11. 小数分频器vhdl实现_基于VHDL的小数分频器设计
  12. LCL三相pwm整流器(逆变器)
  13. 利用ip138取得公网IP,公网ip改变后报警通知我们进行更改
  14. ORA-29913,ORA-29400,KUP-00554,KUP-01005,KUP-01007 oracle外部表报错解决记录
  15. SQL Server电影院数据库管理系统【英文版-源码】--(Movie Theatre Management System Database)
  16. 张孝祥老师的java高新技术
  17. svg图放大、缩小、拖拽
  18. Nexus私服安装以及使用教程
  19. LINUX 指令学习
  20. Java计算1234各个位数和

热门文章

  1. [置顶] 我行贿了 I Paid A Bribe! --印度IPAB中国官方网站 - 民间反腐网站“我行贿了”网址大盘点...
  2. 我爱你们,我的家人和朋友
  3. Python 命令行非阻塞输入
  4. 《机器学习实战》kNN算法及约会网站代码详解
  5. DLLHijack漏洞原理
  6. 使用 Time Machine 恢复 .ssh等隐藏文件夹
  7. Selenium自动化测试IE
  8. nyoj 239 月老的难题
  9. 利用Delphi编写Socket通信程序
  10. 《现代汉语常用字表》(包括常用字和次常用字共3500个)