{ "cells": [ { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "auto: None\n", "abba: ('ba',)\n", "abbababbaa: ('ba',)\n", "abbaa: ('ba',)\n", "ababbaaaa: ('ba',)\n", "bb: None\n", "aaaaaa: None\n", "abbbbab: ('ba',)\n", "ttabvrett: None\n", "aba: ('ba',)\n", "aaa: None\n", "baaa: ('ba',)\n" ] } ], "source": [ "import re\n", "import functools as fc\n", "txt_list=[r'auto',r'abba',r'abbababbaa',r'abbaa',r'ababbaaaa',r'bb',r'aaaaaa'\n", " ,r'abbbbab',r'ttabvrett',r'aba',r'aaa',r'baaa'\n", " ]\n", "#retval=re.search(r'<(.*)>(.*)>(.+?)',txt)\n", "single_check=fc.partial(re.search, r'(ba)')\n", "retval=map(single_check,txt_list)\n", "for i,it in enumerate(retval):\n", " print(txt_list[i],end=': ')\n", " if it==None: print('None')\n", " else: print(it.groups())" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(abba)=================\n", "auto: None\n", "abba: ('abba',)\n", "abbababbaa: ('abba',)\n", "abbaa: ('abba',)\n", "ababbaaaa: None\n", "bb: None\n", "aaaaaa: None\n", "abbbbab: None\n", "ttabvrett: None\n", "aba: None\n", "aaa: None\n", "baaa: None\n", "(^abb).*(bbaa$)|^abbaa|^abbbaa=================\n", "auto: None\n", "abba: None\n", "abbababbaa: ('abb', 'bbaa')\n", "abbaa: (None, None)\n", "ababbaaaa: None\n", "bb: None\n", "aaaaaa: None\n", "abbbbab: None\n", "ttabvrett: None\n", "aba: None\n", "aaa: None\n", "baaa: None\n", "^(a[b-z]*a[b-z]*a[b-z]*)*[b-z]*$=================\n", "auto: None\n", "abba: None\n", "abbababbaa: None\n", "abbaa: ('abbaa',)\n", "ababbaaaa: ('aaa',)\n", "bb: (None,)\n", "aaaaaa: ('aaa',)\n", "abbbbab: None\n", "ttabvrett: None\n", "aba: None\n", "aaa: ('aaa',)\n", "baaa: None\n", "(?P^..).*(?P=mmm)$|^(?P.)(?P=mm){1,2}$=================\n", "auto: None\n", "abba: None\n", "abbababbaa: None\n", "abbaa: None\n", "ababbaaaa: None\n", "bb: (None, 'b')\n", "aaaaaa: ('aa', None)\n", "abbbbab: ('ab', None)\n", "ttabvrett: ('tt', None)\n", "aba: None\n", "aaa: (None, 'a')\n", "baaa: None\n", "(a|b)(a|b)*$=================\n", "auto: None\n", "abba: ('a', 'a')\n", "abbababbaa: ('a', 'a')\n", "abbaa: ('a', 'a')\n", "ababbaaaa: ('a', 'a')\n", "bb: ('b', 'b')\n", "aaaaaa: ('a', 'a')\n", "abbbbab: ('a', 'b')\n", "ttabvrett: None\n", "aba: ('a', 'a')\n", "aaa: ('a', 'a')\n", "baaa: ('b', 'a')\n", "(a(?:a|b)*)$|(?:b(?:a|b)*)$=================\n", "auto: None\n", "abba: ('abba',)\n", "abbababbaa: ('abbababbaa',)\n", "abbaa: ('abbaa',)\n", "ababbaaaa: ('ababbaaaa',)\n", "bb: (None,)\n", "aaaaaa: ('aaaaaa',)\n", "abbbbab: ('abbbbab',)\n", "ttabvrett: None\n", "aba: ('aba',)\n", "aaa: ('aaa',)\n", "baaa: (None,)\n" ] } ], "source": [ "e1a=r'(abba)'\n", "e1b=r'(^abb).*(bbaa$)|^abbaa|^abbbaa'\n", "e1c=r'^(a[b-z]*a[b-z]*a[b-z]*)*[b-z]*$'\n", "e1d=r'(?P^..).*(?P=mmm)$|^(?P.)(?P=mm){1,2}$'\n", "e1e=r'^[b-z]*(a[b-z]+)*a{0,1}$'\n", "e2=r'(a|b)(a|b)*$'\n", "e22=r'(a(?:a|b)*)$|(?:b(?:a|b)*)$'\n", "exps=[e1a,e1b,e1c,e1d,e2,e22]\n", "\n", "for test_re in exps:\n", " single_check=fc.partial(re.match, test_re)\n", " retval=map(single_check,txt_list)\n", " print(test_re,end='=================\\n')\n", " for i,it in enumerate(retval):\n", " print(txt_list[i],end=': ')\n", " if it==None: print('None')\n", " else: print(it.groups())" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.4" } }, "nbformat": 4, "nbformat_minor": 2 }