雖然判斷正則對應是否正確的腳本或者網站有很多,自己還是寫了一個小腳本,就當練手了。沒想到在寫的過程中在循環方面還遇到了問題,不知道是應該用while
還是直接使用if
,這都想了半天,太沒用了,最後還是完成了腳本的製作。
import re
text = input("輸入需要判斷的字符串:\n>>> ")
def judge_re():
text_re = input("輸入正則表達式:\n>>> ")
if re.match(text_re, text):
print ("原字符串爲:\t", text)
print ("\n正則表達式爲:\t", text_re)
print ("\n正則表達式正確!")
else:
print ("錯誤,請重新輸入!\n")
judge_re()
judge_re()
效果還是不錯的:
===============================================================
更新:
今天早上在看正則的時候看到了腳本中match()
函數。書中提示match()
函數必須從字符串的第0個索引位置處開始搜索,如果第0個索引位置的字符串匹配不成功,match()
函數的匹配失敗。說明我上邊那個腳本還是有一定侷限性的。
這裏推薦給大家一個檢測正則是否正確的網址:
在實際寫腳本中,在給保存到本地的文件命名時我用到了正則替換,函數爲:
import re
re.sub(pattern, repl, string, count=0)
這個函數的作用是,根據指定的正則表達式,替換源字符串的字串。pattern
是一個正則表達式,repl
是用於替換的字符串,string
是源字符串。如果count=0
,則返回string
中匹配的所有結果;如果count>0
,則返回count
個匹配結果。
在之前我寫的腳本中遇到了命名的問題,那個例子是:
import re
text = "/media/photos/746264"
file_name = re.sub(r"\D+", "0", text) #在使用正則表達式的時候記得加r" "
print (file_name)
這樣就實現了替換和文件的命名,避免了文件在命名過程中不能使用特殊字符的問題。