, . - (Copyright MCMXLVI Copyright 1946), ( MDCCCLXXXVIII 1888). . ( ).
, .
- I = 1
- V = 5
- X = 10
- L = 50
- C = 100
- D = 500
- M = 1000
:
- . I 1, II 2, III 3. VI 6 (, 5 1), VII 7, VIII 8.
- (I, X, C, M) 3 . 4 . 4 IIII; , IV ( 1 5). 40 XL ( 10 50), 41 XLI, 42 XLII, 43 XLIII, 44 XLIV ( 10 50, 1 5).
- . , . 9, : 8 VIII, 9 IX ( 1 10), VIIII ( I 4 ). 90 XC, 900 CM.
- . 10 X, VV. 100 C, LL.
- , . DC 600; CD (400, 100 500). CI 101; IC ( 1 100; XCIX, 10 100, 1 10).
? . , : . 1000 , M.
>>> import re
>>> pattern = '^M?M?M?$' ①
>>> re.search(pattern, 'M') ②
UNIQae610d7ca506639d-nowiki-00000039-QINU
>>> re.search(pattern, 'MM') ③
<_sre.SRE_Match object at 0106C290>
>>> re.search(pattern, 'MMM') ④
<_sre.SRE_Match object at 0106AA38>
>>> re.search(pattern, 'MMMM') ⑤
>>> re.search(pattern, '') ⑥
<_sre.SRE_Match object at 0106F4A8>
- ① . ^ . , , . , . M? M. . $ . ^ , , .
- ② re search(), (pattern) ('M') . , search() ; , search() None, Python (null). , , search(). 'M' , M , .
- ③ 'MM'
- ④ 'MMM' ,
- ⑤ 'MMMM' . , , ( $), ( ). search() None.
- ⑥ , , .
|
|
?
, .
- 100 = C
- 200 = CC
- 300 = CCC
- 400 = CD
- 500 = D
- 600 = DC
- 700 = DCC
- 800 = DCCC
- 900 = CM
:
- CM
- CD
- C ( )
- D, C
:
- D, C
.
>>> import re
>>> pattern = '^M?M?M?(CM|CD|D?C?C?C?)$' ①
>>> re.search(pattern, 'MCM') ②
UNIQae610d7ca506639d-nowiki-00000040-QINU
>>> re.search(pattern, 'MD') ③
UNIQae610d7ca506639d-nowiki-00000041-QINU
>>> re.search(pattern, 'MMMCCC') ④
UNIQae610d7ca506639d-nowiki-00000042-QINU
>>> re.search(pattern, 'MCMC') ⑤
>>> re.search(pattern, '') ⑥
UNIQae610d7ca506639d-nowiki-00000043-QINU
- ① , (^), (M?M?M?). , : CM, CD D?C?C?C? ( D C). , .
- ② 'MCM' M , M , CM ( CD D?C?C?C? ). MCM 1900.
- ③ 'MD' M , M , D?C?C?C? D ( C ). MD 1500.
- ④ 'MMMCCC' M , D?C?C?C? CCC ( D ). MMMCCC i 3300.
- ⑤ 'MCMC' . M , M , CM, $ ( C). C D?C?C?C?, CM .
- ⑥ , , D?C?C?C? .
! ? . , , . .
|
|
⁂
{n, m}
{1,4} 1 4
. , . .
>>> import re
>>> pattern = '^M?M?M?$'
>>> re.search(pattern, 'M') ①
UNIQae610d7ca506639d-nowiki-00000045-QINU
>>> pattern = '^M?M?M?$'
>>> re.search(pattern, 'MM') ②
UNIQae610d7ca506639d-nowiki-00000046-QINU
>>> pattern = '^M?M?M?$'
>>> re.search(pattern, 'MMM') ③
UNIQae610d7ca506639d-nowiki-00000047-QINU
>>> re.search(pattern, 'MMMM') ④
>>>
- ① , ( ), .
- ② , , ( ) .
- ③ .
- ④ , ( ), None.
>>> pattern = '^M{0,3}$' ①
>>> re.search(pattern, 'M') ②
UNIQae610d7ca506639d-nowiki-00000049-QINU
>>> re.search(pattern, 'MM') ③
<_sre.SRE_Match object at 0x008EE090>
>>> re.search(pattern, 'MMM') ④
<_sre.SRE_Match object at 0x008EEDA8>
>>> re.search(pattern, 'MMMM') ⑤
>>>
- ① : , , . 0 3 , 1 , {1,3}.
- ② , , .
- ③ , , .
- ④ , , .
- ⑤ , , .
, , None.