如何使用python从一行中仅打印某些字符

时间:2015-06-30 18:37:19

标签: python

例如,我有:

a = (b ^ c) || d && e

我希望它只打印

^ || &&  

我是python的新手。有人可以帮我吗?

3 个答案:

答案 0 :(得分:1)

我们可以使用filter过滤掉不需要的字符:

>>> print(''.join(filter(lambda x: not x.isalpha() and x not in '()', a)).replace('  ',' ').strip())
^ || &&

或者,如果您不想要多个空格或前导/尾随空格:

unsigned long long micro = strtoull (str,NULL,10);
struct tm *tm = GetTimeAndDate(micro);

答案 1 :(得分:0)

您可以按不需要的字符组拆分字符串,然后继续加入和删除空格:

' '.join(re.split(r'[\s\d\w()]+', a)).strip() # remove numbers, letters, and whitespace

答案 2 :(得分:-1)

<强> EDIT1

为了纠正误解我可以建议使用regexp。

import re
print(re.sub(r"[^\^|\|\||\&\&]", "", a))

<强> EDIT2

以上代码的评论。

re.sub()函数用第二个参数替换匹配给定模式的所有标记。您可以通过regexone.com

进行快速培训

代码部分使用给定的正则表达式查找所有符号,并用空字符串替换它们。

r"[^\^|\|\||\&\&]"

正则表达式有以下部分

[^] - 告诉我找到不在[和]之间的所有符号。 ^用于否定的符号。

\ ^ \ ^ - 使用反斜杠屏蔽你的^^符号

\ | \ | - 你的||符号

\&安培; \&安培; - 你的&amp;&amp;符号

所有这些都使用&#34;或&#34;声明(&#34; |&#34;符号)

最后你有

^^ | || | &安培;&安培;没有反斜杠告诉,找到^^或||或&amp;&amp;

和[^ ^^ | || | &amp;&amp;],找到不是^^或||的每个符号或&amp;&amp;

但如果您是第一次编码,或者您还不了解python语法,我建议您只学习最简单的python示例,然后学习正则表达式语法。