Perl正则表达式--练习1
生活随笔
收集整理的這篇文章主要介紹了
Perl正则表达式--练习1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
練習題目:
1.?打印所有含有模式Street的行。
2.?打印名字與B或b相匹配的行。
3.?打印與Ker匹配的行。
4.?打印區號為408的電話號碼。
5.?打印Gortz的名字和地址。
6.?以大寫形式打印Ephram的名字。
7.?打印不含4的行。
8.?將William的名字改為Siegfield。
9.?打印Tommy?Savage的生日。
10.?打印收入超過$40,000的名字。
11.?打印在6月出生的人的名字。
12.?打印Massachusetts的郵件編碼。??
練習文件內容:
#?cat?sample.txt Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:2685001.?打印所有含有模式Street的行
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);print?if?/Street/; } __DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500運行結果為:
2.?打印名字與B或b相匹配的行
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);print?if?$name?=~?/[Bb]/; }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500
運行結果為:
3.?打印與Ker匹配的行
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);print?if?/Ker/; }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500
運行結果為:
4.?打印區號為408的電話號碼
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);print?if?$phone?=~?/408/; }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500
運行結果為:
5.?打印Gortz?的名字和地址
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);print?"$name?--?$address\n"?if?$name?=~?/Gortz/; }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500
運行結果為:
6.?以大寫形式打印Ephram?的名字
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);print?"\U$name\E"?if?$name?=~?/Ephram/; }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500
運行結果為:
7.?打印不含4?的行
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);print?unless?($.?==?4); }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500
運行結果為:
8.?將William?的名字改為Siegfield
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);print?if?s/William/Siegfield/; }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500
運行結果為:
9.?打印Tommy?Savage?的生日
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);print?"$name?birth?is:?$birth\n"?if?$name?=~?/Tommy?Savage/; }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500運行結果為:
10. 打印收入超過$40,000的名字
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);print?"$.?--?$name\n"?if?($salary?>?40000); }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500運行結果為:
11. 打印在6月份出生的人的名字
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);($birth_month,?$birth_day,?$birth_year)?=?split("/",?$birth);print?$name?if?$birth_month?=~?/6/; }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500運行結果為:
12. 打印Massachusetts的郵件編碼
while?(<DATA>)?{($name,?$phone,?$address,?$birth,?$salary)?=?split(":",?$_);($street,?$city,?$capital)?=?split(",",?$address);print?$',?"\n"?if?$address?=~?/MA/; }__DATA__ Tommy?Savage:408–724–0140:1222?Oxbow?Court,?Sunnyvale,CA?94087:5/19/66:34200 Lesle?Kerstin:408–456–1234:4?Harvard?Square,?Boston,?MA?02133:4/22/62:52600 JonDeLoach:408–253–3122:123?Park?St.,?San?Jose,?CA?94086:7/25/53:85100 Ephram?Hardy:293–259–5395:235?Carlton?Lane,?Joliet,?IL?73858:8/12/20:56700 Betty?Boop:245–836–8357:635?Cutesy?Lane,?Hollywood,?CA?91464:6/23/23:14500 William?Kopf:846–836–2837:6937?Ware?Road,?Milton,?PA?93756:9/21/46:43500 Norma?Corder:397–857–2735:74?Pine?Street,?Dearborn,?MI?23874:3/28/45:245700 James?Ikeda:834–938–8376:23445?Aster?Ave.,?Allentown,?NJ?83745:12/1/38:45000 Lori?Gortz:327–832–5728:3465?Mirlo?Street,?Peabody,?MA?34756:10/2/65:35200 Barbara?Kerz:385–573–8326:832?Ponce?Drive,?Gary,?IN?83756:12/15/46:268500運行結果為:
轉載于:https://blog.51cto.com/lavenliu/1640384
總結
以上是生活随笔為你收集整理的Perl正则表达式--练习1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重构项目之一:大图展示
- 下一篇: 工作随笔——Intellij_idea-