有關(guān)Python開發(fā)工具進(jìn)行學(xué)習(xí)研究
Python免費(fèi)開源,可移植到多種操作系統(tǒng),只要避免使用依賴于特定操作系統(tǒng)的特性,Python程序無(wú)需修改就可以在各種平臺(tái)上面運(yùn)行,下面對(duì)Python開發(fā)工具進(jìn)行學(xué)習(xí)研究。
如果要精確地查找to這個(gè)單詞的話,我們應(yīng)該使用\bto\b。這里,\b是正則表達(dá)式規(guī)定的一個(gè)特殊代碼或稱為元字符,它代表單詞的開頭或結(jié)尾,也就是單詞的分界處。盡管英文的單詞通常是由空格、標(biāo)點(diǎn)符號(hào)或者換行來(lái)分隔的,但是\b并不匹配這些單詞分隔字符中的任何一個(gè),它只匹配一個(gè)位置。
再次重申,元字符\b所匹配的不是字符,而是位置:其前、后字符不全為(一個(gè)是,一個(gè)不是或不存在)\w的位置。這里的\w也是一個(gè)元字符,后面會(huì)講到。通過(guò)上面的例子,相信讀者對(duì)正則表達(dá)式已經(jīng)有了一個(gè)感性的認(rèn)識(shí),下面我們開始詳細(xì)介紹有關(guān)元字符方面的內(nèi)容。
大多數(shù)字母和字符一般都會(huì)和自身匹配,或者說(shuō)匹配它們的字面值,例如,正則表達(dá)式to會(huì)和字符串“to”精確匹配。此外,還有少數(shù)字符比較特殊,它們和自身并不匹配,而是跟其字面值之外的一些特殊的東西匹配,這些東西可能是字符集、重復(fù)次數(shù)或者位置等。常用的元字符包括:
- class Category(models.Model):
- id = models.AutoField('id', primary_key=True)
- name = models.CharField(maxlength=50)
- code = models.CharField(maxlength=50)
- parentCategory = models.ForeignKey('self', 'id', null=True)
- enable = models.BooleanField()
- def __str__(self):
- return self.name
- class Admin:
- list_display = ('id', 'name', 'code', 'parentCategory')
對(duì)于這些特殊字符,本文會(huì)陸續(xù)加以介紹。不過(guò)我們這里先了解一下用來(lái)匹配字符的元字符。首先,句點(diǎn)“.”這個(gè)元字符通常用于想匹配“任何字符”的地方:一般情況下,它匹配除換行字符之外的任何字符;但是在alternate模式(re.DOTALL)下,它匹配真正意義上的任何字符,包括換行字符在內(nèi)。
我們接下來(lái)考察的元字符是“[”和“]”。它們常配對(duì)用來(lái)指定想匹配的一個(gè)字符集合,也就是說(shuō)該集合內(nèi)的任何一個(gè)元素都能滿足我們的要求。集合內(nèi)的字符可以單個(gè)列出,如果這些字符是連續(xù)的也可以用“-”號(hào)分隔的兩個(gè)給定字符來(lái)指定一個(gè)字符范圍。
例如,[abc]將匹配“a”、“b”或“c”中的任意一個(gè)字符;當(dāng)然也可以用區(qū)間[a-c]來(lái)表示同一字符集,這兩者表示方法是等效的。如果想匹配字符串中的所有元音字母,則可使用下列代碼:
- class Category(models.Model):
- id = models.AutoField('id', primary_key=True)
- name = models.CharField(maxlength=50)
- code = models.CharField(maxlength=50)
- parentCategory = models.ForeignKey('self', 'id', null=True)
- enable = models.BooleanField()
- def __str__(self):
- return self.name
- class Admin:
- list_display = ('id', 'name', 'code', 'parentCategory')
對(duì)于字符集合有一點(diǎn)需要特別注意,就是元字符在方括號(hào)中會(huì)“降級(jí)”為普通字符。例如,[a.]將匹配字符“a”或“.”中的任意一個(gè);前面說(shuō)過(guò)“.”通常用作元字符,但在字符集合里,其特殊性將被剝奪,恢復(fù)成普通字符。這一點(diǎn)讀者可以自己改動(dòng)一下上面的代碼來(lái)實(shí)驗(yàn)一下。
Python開發(fā)工具需要查找不屬于某個(gè)字符集合的字符。比如想查找除了數(shù)字6以外,其它任意字符都行的情況,這時(shí)需要用到反義:其做法是把元字符“^”作為集合的***字符,例如,[^5] 將匹配除“6”之外的任意字符。
【編輯推薦】