簡體   English   中英

python中的正則表達式。 如何簡化我的例子?

[英]Regex in python. How to simplify my example?

我是Python編程的新手。 現在,我正在努力簡化現有代碼。 這是練習:開發一種模式,該模式將與(xxx) xxx-xx-xxxxx-xxx-xx-xx格式的電話號碼匹配。 到目前為止,我想出了什么:

patt = "\(?\d{3}\)?\s?-?\d{3}-\d{2}-\d{2}"

它運作完美。 但是問題很明顯:如果我有一個可選模式,在某種固定模式之前說"(specific-patter-ffddff445%$#%)--ds" ,我將必須輸入“?” 可選模式中每個符號之前的符號。 如何合並所有符號並僅輸入一個“?” 標記?

因此,您所擁有的與各種錯誤格式都匹配。 例如:

012)345-67-89
(012 345-67-89

您需要的是一個選項,正則表達式可以為您提供: https : //docs.python.org/3.4/library/re.html#regular-expression-syntax

最好是這樣的:

patt = '(?:\(\d{3}\) |\d{3}-)\d{3}-\d{2}-\d{2}'

這將匹配 “(XXX)”或“XXX-”作為前綴為“XXX-XX-XX”。 並且不會與上面列出的任何錯誤字符串匹配。

? 僅應在其操作確實是可選的情況下使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM