.


:




:

































 

 

 

 


:




\d (09). \D


. , . , . .

. . ( ), , , . , .

:

  • 800-555-1212
  • 800 555 1212
  • 800.555.1212
  • (800) 555-1212
  • 1-800-555-1212
  • 800-555-1212-1234
  • 800-555-1212x1234
  • 800-555-1212 ext. 1234
  • work 1-(800) 555.1212 #1234

. 800, 555 1212. , 1234

. :

 

>>> phonePattern = re.compile(r'^(\d{3})-(\d{3})-(\d{4})$') ①
>>> phonePattern.search('800-555-1212').groups() ②
('800', '555', '1212')
>>> phonePattern.search('800-555-1212-1234') ③
>>> phonePattern.search('800-555-1212-1234').groups() ④
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'groups'

 

  • ① . (\d{3}). \d{3}? , \d ( 0 9). {3} ; {n, m} . , . . , . . .
  • ② , groups() search(). , . , , .
  • ③ , . .
  • search() groups() . search() , None, . None.groups() : None groups(). ( , . , .)

 

>>> phonePattern = re.compile(r'^(\d{3})-(\d{3})-(\d{4})-(\d+)$') ①
>>> phonePattern.search('800-555-1212-1234').groups() ②
('800', '555', '1212', '1234')
>>> phonePattern.search('800 555 1212 1234') ③
>>>
>>> phonePattern.search('800-555-1212') ④
>>>

  • ① . , , , , , . ? .
  • ② groups() , .
  • ③ , . , ?
  • ④ .

! . , . ; , , , .


.

 

>>> phonePattern = re.compile(r'^(\d{3})\D+(\d{3})\D+(\d{4})\D+(\d+)$') ①
>>> phonePattern.search('800 555 1212 1234').groups() ②
('800', '555', '1212', '1234')
>>> phonePattern.search('800-555-1212-1234').groups() ③
('800', '555', '1212', '1234')
>>> phonePattern.search('80055512121234') ④
>>>
>>> phonePattern.search('800-555-1212') ⑤
>>>

 

  • ① . , , \D+. ? , \D + 1 . \D+ . - .
  • ② \D+ - , .
  • ③ .
  • ④ , . ?
  • ⑤ ! . , .


.

 

>>> phonePattern = re.compile(r'^(\d{3})\D*(\d{3})\D*(\d{4})\D*(\d*)$') ①
>>> phonePattern.search('80055512121234').groups() ②
('800', '555', '1212', '1234')
>>> phonePattern.search('800.555.1212 x1234').groups() ③
('800', '555', '1212', '1234')
>>> phonePattern.search('800-555-1212').groups() ④
('800', '555', '1212', '')
>>> phonePattern.search('(800)5551212 x1234') ⑤
>>>

 

  • ① , + *. \D+ , \D*. + 1 ? , * . .
  • ② , . ? , (800), , (555), , (1212), , (1234), .
  • ③ : , x .
  • ④ : . groups() , .
  • ⑤ , . ? area , . , .


.

 

>>> phonePattern = re.compile(r'^\D*(\d{3})\D*(\d{3})\D*(\d{4})\D*(\d*)$') ①
>>> phonePattern.search('(800)5551212 ext. 1234').groups() ②
('800', '555', '1212', '1234')
>>> phonePattern.search('800-555-1212').groups() ③
('800', '555', '1212', '')
>>> phonePattern.search('work 1-(800) 555.1212 #1234') ④
>>>

 

  • ① , \D*, , ( ). ( ). , .
  • ② , . ( ; \D* .)
  • ③ -, . , , , (800), (), (555), (), (1212), , , .
  • ④ . ? 1 , (\D*).

. . . , , : . .

 

>>> phonePattern = re.compile(r'(\d{3})\D*(\d{3})\D*(\d{4})\D*(\d*)$') ①
>>> phonePattern.search('work 1-(800) 555.1212 #1234').groups() ②
('800', '555', '1212', '1234')
>>> phonePattern.search('800-555-1212') ③
('800', '555', '1212', '')
>>> phonePattern.search('80055512121234') ④
('800', '555', '1212', '1234')

 

  • ① ^ . . . .
  • ② , .
  • ③ . .
  • ④ .

? . ?

( ; , ), , .

 

>>> phonePattern = re.compile(r'''
# don't match beginning of string, number can start anywhere
(\d{3}) # area code is 3 digits (e.g. '800')
\D* # optional separator is any number of non-digits
(\d{3}) # trunk is 3 digits (e.g. '555')
\D* # optional separator
(\d{4}) # rest of number is 4 digits (e.g. '1212')
\D* # optional separator
(\d*) # extension is optional and can be any number of digits
$ # end of string
''', re.VERBOSE)
>>> phonePattern.search('work 1-(800) 555.1212 #1234').groups() ①
('800', '555', '1212', '1234')
>>> phonePattern.search('800-555-1212') ②
('800', '555', '1212', '')

 

  • ① , , .
  • ② . , . .

. , , , .

:

^ .
$ .
\b .
\d .
\D .
x? x ( x).
x* x.
x+ x.
x{n, m} x n , m .
(a|b|c) a b c.
(x) . groups() re.search.

 

, . ,

 

, , . . , , . , , . , , , ( ). , ; . , , . , .

. . .

. , , . , . ( , . , , ).

, , , :

  1. S, X Z, ES. Bass basses, fax faxes, waltz waltzes.
  2. H, ES; H, S. H? , , . , coach coaches, rash rashes, CH SH, . cheetah cheetahs, H .
  3. Y, I, Y IES; Y - -, S. vacancy vacancies, day days.
  4. , S .

( , . Man men, woman women, human humans. Mouse mice, louse lice, house houses. Knife knives, wife wives, lowlife lowlifes. , , sheep, deer haiku).

, , .

Python, . , , .





:


: 2016-11-18; !; : 382 |


:

:

, , .
==> ...

1562 - | 1466 -


© 2015-2024 lektsii.org - -

: 0.019 .