我正在爲正則表達式尋找一個長字符串中的波蘭語電話號碼。可能有+48
,0048
,48
(在括號中不是)後跟9位數字,其間有空格。波蘭語電話號碼的正例表達式
的第一個想法是:
(\(?(\+|00)?48\)?)?[ -]?\d{3}[ -]?\d{3}[ -]?\d{3}
這捕獲之類的東西+48 123 456 789
和123456789
,但也將在1234567899876543211
發現2個電話號碼 - 這是不能接受的。所以我加了字邊界:
\b(\(?(\+|00)?48\)?)?[ -]?\d{3}[ -]?\d{3}[ -]?\d{3}\b
但這個表達式,在一個字符串,如(+48) 123 456 789
只捕獲48) 123 456 789
。爲什麼被忽略?
(regex101與應匹配什麼例子/不應該匹配)
空間是否總是三個一組? –
@WillemVanOnsem對於一些錯誤消息,我很確定,所以是的,我們可以做出這個假設。 – maestromusica
這是由於字邊界,將其移動到數字。在非字字符之前,添加'\ B'。 –