1. 程式人生 > 其它 >軟體開發目錄規範與正則表示式

軟體開發目錄規範與正則表示式

軟體開發目錄規範與正則表示式

  • 絕對匯入與相對匯入
  • 軟體開發目錄規範
  • 正則表示式
  • 字元組
  • 特殊符號
  • 量詞
  • 貪婪匹配與非貪婪匹配

一、絕對匯入與相對匯入

  在程式中涉及到多個檔案之間匯入模組的情況,一律按照執行檔案所在的路徑為準

  1. 絕對匯入

    始終按照執行檔案所在的sys.path查詢模組

  2. 相對匯入

    能夠打破始終以執行檔案為準的規則,只考慮兩個檔案之間的位置

    句點符(.)

      .表示當前檔案路徑

      ..表示上一層檔案路徑

    相對匯入只能用在模組檔案中,不能在執行檔案中使用

二、軟體開發目錄規範

  目錄規範並無固定要求,只要符合清晰可讀即可

  1. bin資料夾

    存放一系列啟動檔案(當啟動檔案很少或者只有一個的時候也可以直接寫在外面)

      start.py

  2. conf資料夾

    存放一系列配置檔案

      settings.py(一般情況下該檔案內的變數名都是大寫)

  3. lib資料夾

    存放公共的功能

      common.py

  4. db資料夾

    存放資料相關檔案

      userinfo.txt

  5. log資料夾

    存放日誌記錄檔案

      log.txt

  6. core資料夾

    存放專案核心程式碼

      src.py

  7. readme檔案

    存放說明相關資訊(類似於說明書、廣告、章程)

  8. requirements.txt

    存放專案所需的第三方模組及版本號

  需要熟練掌握

三、正則表示式

  正則表示式是一門獨立的語言,跟其他程式語言都沒有關係

  如果想在Python程式碼中使用正則表示式,需要藉助於內建模組re

  1. 什麼是正則表示式

    利用一些特殊符號的組合去字串中篩選出符合條件的資料

  2. 傳統方法判斷手機號是否正確

    要求:

      1)必須是11位

      2)必須是純數字

      3)必須符合手機號的排布,如13 15 16 18開頭

phone = input('
請輸入你的手機號>>>:').strip() if len(phone) == 11: if phone.isdigit(): if phone.startswith('15') or phone.startswith('16') or phone.startswith('18') or phone.startswith('19'): print('手機號正確') else: print('格式不對') else: print('手機號必須是純數字') else: print('必須是11位')

  3. 使用正則表示式判斷手機號是否正確

import re

phone_number = input('please input your phone number : ')
if re.match('^(13|14|15|18)[0-9]{9}$', phone_number):
    print('是合法的手機號碼')
else:
    print('不是合法的手機號碼')

四、 字元組

  使用中括號括起來,字元組預設只能單個單個匹配字元

  1.匹配0到9之間任何一個數字

[0123456789]  # 可以簡寫為 [0-9]

  2.匹配小寫字母a到字母z其中任意一個字母

[a-z]

  3.匹配大寫字母A到字母Z其中任意一個字母

[A-Z]

  4. 匹配所有的數字、小寫、大寫

[a-zA-Z0-9]

五、特殊符號

  特殊符號預設也只能單個單個字元匹配

.         匹配除換行符以外的任意字元
\d        匹配數字
^        匹配字串的開始
$        匹配字串的結尾
        """^與$組合使用可以精準限制要查詢的資料"""
a|b        匹配字元a或字元b
()        匹配括號內的表示式也表示一個組(不會影響正則表示式的匹配單純的分組而已)
[...]        匹配字元組中的字元
[^...]    匹配除了字元組中字元的所有字元

六、量詞

  1. 量詞的使用規則:

    1)表示式在沒有量詞修飾的情況下,都是單個單個匹配
    2)量詞必須結合(字串、特殊符合等)一起使用,不能單獨出現
    3)量詞只能影響前面的一個表示式(ab+ 只能影響b)

  2. 量詞介紹

*        重複零次或更多次
+        重複一次或更多次
?        重複零次或一次
{n}      重複n次
{n,}     重複n次或更多次
{n,m}    重複n到m次

    正則表示式中的量詞預設都是“貪婪匹配”

七、貪婪匹配與非貪婪匹配

  待匹配的字串

<script>123</script>

  使用正則表示式

<.*>  # 預設貪婪匹配,會盡可能多的匹配

  將貪婪匹配變為非貪婪匹配,只需要在量詞的後面加問號即可

<.*?>  # 非貪婪匹配,會盡可能少的去匹配,結束條件由左右兩邊決定