Python / Regex:排除除了一件事之外的所有事情

时间:2010-02-02 15:34:25

标签: python regex

假设我有这些字符串:

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 :(得分:4)

如果您只想匹配变量c

if '-' == something:
   print 'hurray!'

回答更新:是的,那太麻烦了。你不需要正则表达式。简单的字符串方法更快:

>>> lst =["hello", "-hello", "-", "hell-o","    - "]
>>> for i, item in enumerate(lst):
    if item == '-':
        print(i, item)


2 -

答案 1 :(得分:1)

作为正则表达式的“^ - $”

答案 2 :(得分:0)

如果你要做的是删除短划线(即he-llo给出hello),那么这对于生成器表达式来说更像是一个工作。

''.join((char for char in 'he-llo' if char != '-'))

答案 3 :(得分:0)

if "-" in c and len(c) ==1 : print "do something"

OR

if c=="-"