diff --git a/TaskF05/description.txt b/TaskF05/description.txt new file mode 100644 index 0000000..5e6941f --- /dev/null +++ b/TaskF05/description.txt @@ -0,0 +1,22 @@ +Napisać program, który wczytuje kolejne wiersze ze standardowego +wejścia i analizuje każdy wiersz (bez znaku końca wiersza). Należy w +jak największym stopniu wykorzystać wyrażenia regularne (np. nie wolno +użyć negacji jako operacji w danym języku programowania, jeśli da się +to wyrazić w samym wyrażeniu regularnym). Tam, gdzie to możliwe należy +użyć pojedynczego wyrażenia regularnego. + +Write a program, which loads consecutive lines from standard input +and analyze every line (with no newline character). You should +use regular expressions to the greatest extent possible (e.g. you +can not use negation in the programming language if it is +possible to express the same in regular expression). Wherever possible, +use one regular expression. + +Write the input line with the third word changed to "xxx" string. +The number of "x" in the "xxx" string should be the same as the +the number of characters in the input string. +In this task, a word means a string of "\w" metacharacters. + + +POINTS: 2 +DEADLINE: 2024-01-07 23:59:59 diff --git a/TaskF05/run.py b/TaskF05/run.py new file mode 100644 index 0000000..37a76b6 --- /dev/null +++ b/TaskF05/run.py @@ -0,0 +1,21 @@ +import re +import sys + +def replace_third_word(match): + if match.group(2): + replacement = 'x' * len(match.group(2)) + return f"{match.group(1)}{replacement}{match.group(3)}" + else: + return match.group(0) + +def replace_third_word_in_line(line): + + pattern = re.compile(r'((?:\b\w+\b\s+){2})(\b\w+\b)(.*)') + replaced_line = pattern.sub(replace_third_word, line) + + return replaced_line + + +for line in sys.stdin: + output_line = replace_third_word_in_line(line.strip()) + sys.stdout.write(output_line + '\n') \ No newline at end of file diff --git a/TaskF05/simple.exp b/TaskF05/simple.exp new file mode 100644 index 0000000..daf42d5 --- /dev/null +++ b/TaskF05/simple.exp @@ -0,0 +1,2 @@ +Mam 2 xxxxxx i 35 banananów. +Widziałem 2 xxxxxxx. diff --git a/TaskF05/simple.in b/TaskF05/simple.in new file mode 100644 index 0000000..945ef3b --- /dev/null +++ b/TaskF05/simple.in @@ -0,0 +1,2 @@ +Mam 2 jabłka i 35 banananów. +Widziałem 2 bociany. diff --git a/TaskF05/simple.out b/TaskF05/simple.out new file mode 100644 index 0000000..daf42d5 --- /dev/null +++ b/TaskF05/simple.out @@ -0,0 +1,2 @@ +Mam 2 xxxxxx i 35 banananów. +Widziałem 2 xxxxxxx.