Python / 正则表达式:排除除一项以外的所有内容
假设我有这些字符串:
a = "hello"
b = "-hello"
c = "-"
d = "hell-o"
e = " - "
我怎么才能只匹配到 -
(字符串 C
)呢?我试过用 if "-" in something
,但显然这样不对。有人能给我点建议吗?
假设我们把这些字符串放到一个列表里,然后循环遍历,我只想提取出 C
。我该怎么做呢?
for aa in list1:
if not re.findall('[^-$]'):
print aa
这样做会不会太麻烦了?
4 个回答
0
如果你想做的事情是去掉短横线(比如说 he-llo
变成 hello
),那么这更适合用生成器表达式来处理。
''.join((char for char in 'he-llo' if char != '-'))
1
这个正则表达式是“^-$”。
4
如果你只想匹配变量 c
:
if '-' == something:
print 'hurray!'
关于更新的回答:是的,那样会太复杂。你在这里不需要用正则表达式。简单的字符串方法会更快:
>>> lst =["hello", "-hello", "-", "hell-o"," - "]
>>> for i, item in enumerate(lst):
if item == '-':
print(i, item)
2 -