Главная / Программирование /
Регулярные выражения Perl и их применение / Тест 1
Регулярные выражения Perl и их применение - тест 1
Упражнение 1:
Номер 1
Какие операторы удаляют все пробельные символы только в начале текста?
Ответ:
 (1) s/^ +//m
 
 (2) s/^\s+//g
 
 (3) s/^ *//m
 
 (4) s/^\s*//s
 
 (5) s/\s+?//
 
 (6) s/\s*?//
 
 (7) s/^[\t\r\3]*//
 
Номер 2
Какие операторы удаляют все пробельные символы только в конце текста?
Ответ:
 (1) s/\s+$//m
 
 (2) s/\s*$//m
 
 (3) s/\s*$//
 
 (4) s/\s+\Z//
 
 (5) s/\s+?$//
 
 (6) s/\s*\z//
 
 (7) s/\s*?\Z//
 
Номер 3
Какие операторы удаляют все пробельные символы только в начале каждой строки текста?
Ответ:
 (1) s/^ +//m
 
 (2) s/^ *//m
 
 (3) s/^\s+//g
 
 (4) s/^\s*//gms
 
 (5) s/^\s+?//g
 
 (6) s/^\s*?//g
 
 (7) s/^[\r\3\t]+//g
 
Номер 4
Какие операторы удаляют все пробельные символы только в конце каждой строки текста?
Ответ:
 (1) s/ +$//m
 
 (2) s/\s*//m
 
 (3) s/\s+\Z//g
 
 (4) s/\s*$//gms
 
 (5) s/\s+?$//g
 
 (6) s/\s*?$//g
 
 (7) s/\s*?//g
 
Упражнение 2:
Номер 1
Какое регулярное выражение соответствуют всей строке '-123.456'
, которая содержит число?
Ответ:
 (1) /\d+.\d+/
 
 (2) /^\-\d+\.\d*$/
 
 (3) ^\-?\d+\.\d+$/
 
 (4) /^[-.\d]+$/
 
Номер 2
Какие регулярные выражения соответствуют всей строке 'abc123'
?
Ответ:
 (1) /\w+\d/
 
 (2) /\d*\w+/
 
 (3) /\w*\d+/
 
 (4) /[a-c\d]*/
 
Номер 3
Какие регулярные выражения соответствуют всей строке '1a2b3c+'
?
Ответ:
 (1) /\w++/
 
 (2) /[\d\w]++/
 
 (3) /[\w+]*/
 
 (4) /\S+/
 
Упражнение 3:
Номер 1
Какие регулярные выражения захватят в $1
только подстроку 'abc -123'
в строке 'xyz abc -123 uvw'
?
Ответ:
 (1) /\w+(\w+\s+-\d+)/
 
 (2) /[\w\s]+(\w+\s+[-\d]+)/
 
 (3) /\S+\s+(\S+\s+[-\d]+)/
 
Номер 2
Какие регулярные выражения захватят в $1
только подстроку '123 a-bc'
в строке 'xyz 123 a-bc uvw'
?
Ответ:
 (1) /(\d+[\s\w-]+)/
 
 (2) /(\d+\s+[\w-]*)/
 
 (3) /\S+\s+(\d+\s*[a-bc]+)/
 
Номер 3
Какие регулярные выражения захватят в $1
только подстроку 'ab+c 1-23'
в строке 'xyz ab+c 1-23 uvw'
?
Ответ:
 (1) /(a[\w+]+\s+[\d-]+)/
 
 (2) /\S+\s+(\w+\+\w+\s+\d-\d*)/
 
 (3) /\S+\s+(\w+\+\w+\s+\d-\d*?)/
 
Упражнение 4:
Номер 1
В тексте надо захватить в $1
фрагмент (может и пустой) от первых до вторых кавычек. Какие операторы делают это правильно?
Ответ:
 (1) /"(.+)"/
 
 (2) /"(.+)"/s
 
 (3) /"(.*)"/
 
 (4) /"(.*?)"/s
 
 (5) /"([^"]+)"/
 
 (6) /"([^"]*)"/
 
Номер 2
В тексте надо захватить в $1
фрагмент от предпоследних до последних кавычек. Какие операторы делают это правильно?
Ответ:
 (1) /"([^"]*)"[^"]*/
 
 (2) /"([^"]*)"[^"]*$/
 
 (3) /[^"]+"(.+)"/s
 
 (4) /.*"([^"]*)"/s
 
Номер 3
В тексте надо захватить в $1
фрагмент от первых до третьих кавычек. Какой оператор делает это правильно?
Ответ:
 (1) /"([^"]*"[^"]*)"/
 
 (2) /"([^"]*"[^"]+)"/
 
 (3) /"(.*".*)"/
 
 (4) /"(.*".*)"/s
 
 (5) /"(.|")"/s
 
Упражнение 5:
Номер 1
Строка содержит полный путь и имя файла в Windows и ничего больше. Надо захватить в $1
имя файла. Какие операторы делают это правильно?
Ответ:
 (1) /.*\(.+)/
 
 (2) /.*\\(.+)/
 
 (3) /.+\\(.*)/
 
 (4) /.*?\\(.*)/s
 
 (5) /.*\\(.*?)/s
 
 (6) /\\(.*)/s
 
Номер 2
Строка содержит полный путь и имя файла в Windows и ничего больше. Надо захватить в $1
имя диска. Какие операторы делают это правильно?
Ответ:
 (1) /(.+)\\/
 
 (2) /(.+)\/
 
 (3) /([^\]+)\\/
 
 (4) /([^\\]+)\\/
 
 (5) /^([^\\]*)\\/
 
 (6) /(.+?)\\/
 
Номер 3
Строка содержит полный путь и имя файла в Windows и ничего больше. Надо захватить в $1
весь путь без имени диска и имени файла. Какие операторы делают это правильно?
Ответ:
 (1) /[^:]*:(.*\\)/
 
 (2) /[^:]*?:(.*\\)/
 
 (3) /[^:]*:(.*?\\)/
 
 (4) /[^\\]+(.*?\\)/
 
 (5) /[^\\]+(.*\\)/s
 
 (6) /^[^\\]+(.*\\)/
 
Упражнение 6:
Номер 1
Какие регулярные выражения захватят в $1
подстроку '-123abc'
, а в $2
- подстроку '1+2abc'
из строки '1-2ab -123abc a1 1+2abc'
?
Ответ:
 (1) /([-123\w]+)\s+(\S+)/
 
 (2) /\S+\s+(\S+)\s+(\S+)/
 
 (3) /(\S+c)\s+\S+\s+([+\w]*)/
 
Номер 2
Какие регулярные выражения захватят в $1
подстроку 'yahoo!'
, а в $2
- подстроку 'a_bc'
из строки 'ab!c yahoo! a_bc'
?
Ответ:
 (1) /([\w!]+)\s+(\S+)/
 
 (2) /([\w]+!)\s+(\S+)/
 
 (3) /([\w]+!)\s+(\w+)/
 
Номер 3
Какие регулярные выражения захватят в $1
подстроку 'ab?c'
, а в $2
- подстроку 'abc?'
из строки '12?a ab?c abc?'
?
Ответ:
 (1) /([\w?]+)\s+(\S+)/
 
 (2) (a[\w?]+\s+)(\S+)
 
 (3) /([a-z]+[?\w]*)\s+(\S+)/