![](/img/trans.png)
[英]Python - CSVs - How to delete certain characters only from the header of CSVs?
[英]How to print only certain characters from a line using python
例如,我有:
a = (b ^ c) || d && e
我只想打印
^ || &&
我是python的新手。 有人可以帮我解决这个问题吗?
我们可以过滤掉与不想要的字符filter
:
>>> a = "(b ^ c) || d && e"
>>> print(*filter(lambda x: not x.isalpha() and x not in '()', a), sep='')
^ || &&
或者,如果您不想要多个空格或前导/尾随空格:
>>> print(''.join(filter(lambda x: not x.isalpha() and x not in '()', a)).replace(' ',' ').strip())
^ || &&
您可以按不需要的字符组拆分字符串,然后继续连接和去除空间:
' '.join(re.split(r'[\s\d\w()]+', a)).strip() # remove numbers, letters, and whitespace
编辑1
为了纠正误解,我建议为此使用正则表达式。
import re
print(re.sub(r"[^\^|\|\||\&\&]", "", a))
编辑2
上面代码的注释。
re.sub()函数用第二个参数替换所有匹配给定模式的标记。 您可以在此处通过regexone.com 的快速培训
这部分代码使用给定的正则表达式查找您的所有符号,并用空字符串替换它们。
r"[^\^|\|\||\&\&]"
该正则表达式有以下部分
[^] - 告诉查找所有不在 [ 和 ] 之间的符号。 ^ 用于否定的符号。
\\^\\^ - 您的 ^^ 符号使用反斜杠屏蔽
\\|\\| - 你的 || 符号
\\&\\& - 你的 && 符号
所有这些都使用“或”语句(“|”符号)分组
最后你有
^^ | || | && 没有反斜杠告诉,找到 ^^ 或 || 或者 &&
并在 [^ ^^ | || | &&],找出所有不是 ^^ 或 || 的符号或者 &&
但是如果你是第一次编码,或者你还不知道 python 语法,我建议你只在最简单的例子中学习 python,然后学习正则表达式语法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.