2014-02-23 121 views
-2

我希望在我的字符串中找到符號'$'。使用正則表達式匹配

s= 'abc$efg' 
import re 
result = re.match(r'\$',s) 

我想寫一個if語句,當$存在時給我一個錯誤,否則打印OK!

if '$ available in result': 
    print 'error' 
else: 
    print 'OK' 

我想要實現這個使用正則表達式,而不是下面一個簡單的方法:

res = str.find('$') 
    if res!=-1: 
    print 'error' 
+1

你有沒有試過這個,並且遇到了困難?當更簡單的方法可用時,爲什麼你要爲這個問題使用正則表達式? – Krease

+2

只有在字符串的BEGINNING匹配時,'re.match'纔會匹配;在你的模式中使用're.search',你就近了。 – dawg

+0

明白了!我知道我可以通過re.search做到這一點。理解re.match會是一個很好的例子嗎?如何使用從re.match獲得的結果? – NBA

回答

1

要做到這一點,最好的辦法是使用in操作:

if '$' in my_string: 
    print('Error') 

使用正則表達式效率更低,速度更慢:

if re.search('\$', my_string): 
    print('Error') 
1

雖然看起來毫無意義的尋找一個更復雜的方式來做到這一點,當你自己已經證明了find方法,並在運營商使用,如:

>>> '$' in s 
True 

會更好過。

re.match只在字符串的最開始處查找匹配項。然而,

你可以試試這個:

s= 'abc$efg' 

import re 

if re.search(r'\$', s): # re.search looks for matches throughout the string 
    print 'error' # raise Error might be more what you want 
else: 
    print 'ok' 
1
import re 

s = 'abc$efg' 

if re.search('\$', s): # Returns true if any instance is found. 
    raise Error 
else: 
    print 'OK' 

我們必須使用轉義字符\$因爲$re一個特殊字符,但我們只是想找到該字符,而不是用它作爲操作數。