我正在關注正則表達式的教程。我在執行以下操作時遇到錯誤:Python中的基本正則表達式操作
regex = r'(+|-)?\d*\.?\d*'
顯然,Python不喜歡(+ | - )。可能是什麼問題呢?
此外,在正則表達式之前不添加r會有什麼問題?
我正在關注正則表達式的教程。我在執行以下操作時遇到錯誤:Python中的基本正則表達式操作
regex = r'(+|-)?\d*\.?\d*'
顯然,Python不喜歡(+ | - )。可能是什麼問題呢?
此外,在正則表達式之前不添加r會有什麼問題?
你需要逃避+
正則表達式得到一個字面+
,因爲它通常是指「東西一個或多個實例」:
regex = r'(\+|-)?\d*\.?\d*'
而且r
使它成爲一個「原始」的字符串。沒有r
,正則表達式轉義序列將被解釋爲字符串轉義序列,並且它們會導致各種問題。 (\b
是一個退格而不是文字邊界,以及那種事情)。
+
是一個特殊字符。您可以使用括號來指定字符的範圍,這比使用更好的「或者」在這種情況下:
regex = r'([+-])?\d*\.?\d*'
否則管道符,你只需要逃避在原始版本:
regex = r'(\+|-)?\d*\.?\d*'
使用r
是指定在python一個正則表達式的字符串,因爲它指示原始字符串,其不應被解釋並減少逸出必須使用反斜槓執行的量的優選方式。這只是一個你將會看到的python正則表達式。
r'(\+|-)?\d*\.?\d*'
#'(\\+|-)?\\d*\\.?\\d*'