2011-08-10 73 views
2

我知道它可以表示範圍,但例如這裏[-.\d]看起來像這意味着十進制數。正則表達式前面的破折號符號是什麼意思? 另外,爲什麼除了[],他們周圍是否有()()是什麼意思?python正則表達式 - 什麼 - (短劃線)的意思是

+0

[ - 。\ d]在正則表達式上下文中是字符' - ','。'的集合。和數字0-9。 \ d表示正則表達式中的數字。 – arunkumar

+2

我不認爲它是在當前答案中提到的,但是在一個字符類(方括號)內,短劃線也可以指定一個範圍。例如'[a-d]'可以匹配a,b,c或d。 '-'必須是第一個字符(就像在你的例子中),意思是「匹配一個文字'-'字符」。 –

回答

6

[-.\d]發現一個字符要麼是[])破折號(-),一個週期(.)或數目(\d)。

括號周圍意味着分組,從而使匹配的值可在以後使用Match對象的group()方法來訪問。請參閱documentation of the re module

3

它的意思是「破折號」。他們可能會期望一些負數(即-0.5)。 ()意味着它正在捕獲比賽。

+0

你是什麼意思?這裏的小數點是如何編碼的?看起來像。有特殊的性格。 (點)當你有一些數字,然後小數點,然後更多的數字,它是如何工作的? [和]之間的 – Trup

+3

,所有特殊字符都會被轉義。所以如果你看到:([ - 。\ d] +),它可能意味着「找到任何數字(整數,浮點數,負數等)並將其存儲在某處以供重用」。 – Simon

4

-在這裏並不意味着什麼特別,它是字面上匹配一個破折號(可能尋找作爲減號使用破折號)。 .也是文字 - 它將匹配一個點(可能用於小數點)。 \d將匹配任何數字(0-9)。如果您在示例的末尾添加*+乘數,則會給它匹配任意數字:正數,負數或浮點數。

用於標記組的開始和結束的()括號可以在執行匹配後檢索組的內容。

有關更多信息,請參閱http://docs.python.org/library/re.html

+0

那麼[]是什麼,那麼,如果()表示一個組? – Trup

+0

[]括號用於創建一個匹配其中任何內容的表達式。例如'[abc]'將匹配'a'或'b'或'c'。而'abc'只會匹配三個連續的字符'abc'。 –

+0

so([abc])等價於(a | b | b)? – Trup

0

請記住[]它表示一個字符類,它下面的每個東西都將被視爲可以字符串呈現的字符,(除非在字符類中像在\ d +中那樣在字符類中轉義它)。 [\d-+]+現在在這種情況下, - 和+裏面[]只是簡單的符號,字符類外面的+現在是正則表達式重複符號。

相關問題