On Sunday, 12 April 2015 21:07:09 UTC-4, MRAB wrote: > On 2015-04-13 01:55, Pippo wrote: > > On Sunday, 12 April 2015 20:46:19 UTC-4, Cameron Simpson wrote: > >> >> >> > > constraint = re.compile(r'(#C\[\w*\]')) > >> >> >> > > result = constraint.search(content[j],re.MULTILINE) > >> >> >> > > text.append(result) > >> >> >> > > print(text) > >> [...] > >> >> >> result is empty! Although it should have a content. > >> [...] > >> >> > I fixed the syntax error but the result shows: > >> >> > [None] > >> >> > [None, None] > >> [...] > >> > >> Note that "None" is not "empty", though in this case more or less means > >> what > >> you think. > >> > >> You're getting None because the regexp fails to match. > >> > >> >> Try printing each string you're trying to match using 'repr', i.e.: > >> >> print(repr(content[j])) > >> >> > >> >> Do any look like they should match? > >> > print(repr(content[j])) gives me the following: > >> > > >> >[None] > >> >'#D{#C[Health] #P[Information] - \n' > >> [...] > >> >shouldn't it match "#C[Health]" in the first row? > >> > >> It looks like it should, unless you have mangled your regular expression. > >> You > >> mentioned earlier that you fixed the syntax error, but you never actually > >> recited the line after fixing it. Please cut/paste the _exact_ line where > >> you > >> compile the regexp as it is now. Superficially I would expect your regexp > >> to > >> work, but we would like to see it as it current is. > >> > >> Also note that you can print the regexp's .pattern attribute: > >> > >> print(constraint.pattern) > >> > >> as a check that what was compiled is what you intended to compile. > >> > >> >If not, what is the best way to fetch these items in an array? > >> > >> What you've got is ok. I would point out that as you're processing each > >> line on > >> its own you should not need "re.MULTILINE" in your .compile() call. > >> > >> Cheers, > >> Cameron Simpson <c...@zip.com.au> > >> > >> The upside of PHP is that it lets non-programmers create complex > >> applications. The downside of PHP is that it lets non-programmers create > >> complex applications. - Elliot Lee > > > > This is the complete code: > > > > import re > > import tkinter.filedialog > > import readfile > > > > > > > > j = 0 > > > > text = [] > > > > > > #content = "#C[Health] #P[Information]" > > > > content = readfile.pattread() > > > > while j < len(content): > > > > constraint = re.compile(r'(#C\[\w*\])') > > result = constraint.search(content[j]) > > text.append(result) > > print(constraint.pattern) > > print(text) > > print(repr(content[j])) > > j = j+1 > > > > This is the result I get: > > (#C\[\w*\]) > > [<_sre.SRE_Match object at 0x10292ee40>] > > '#D{#C[Health] #P[Information] - \n' > > (#C\[\w*\]) > > [<_sre.SRE_Match object at 0x10292ee40>, None] > > 'means any information, including #ST[genetic information], \n' > > (#C\[\w*\]) > > [<_sre.SRE_Match object at 0x10292ee40>, None, None] > > 'whether #C[oral | (recorded in (any form | medium))], that \n' > > (#C\[\w*\]) > > [<_sre.SRE_Match object at 0x10292ee40>, None, None, None] > > '(1)#C[Is created or received by] a \n' > > (#C\[\w*\]) > > [<_sre.SRE_Match object at 0x10292ee40>, None, None, None, None] > > '#A[health care provider | health plan | public health authority | employer > > | life insurer | school | university | or health care clearinghouse]; \n' > > (#C\[\w*\]) > > [<_sre.SRE_Match object at 0x10292ee40>, None, None, None, None, None] > > '(2)#C[Relates to] #C[the past, present, or future physical | mental health > > | condition of an individual] | \n' > > (#C\[\w*\]) > > [<_sre.SRE_Match object at 0x10292ee40>, None, None, None, None, None, None] > > '#C[the provision of health care to an individual] | \n' > > (#C\[\w*\]) > > [<_sre.SRE_Match object at 0x10292ee40>, None, None, None, None, None, > > None, None] > > '#C[the past, present, or future payment for the provision of health care > > to an individual].}\n' > > > The search returns a match object. If you want the text that it found, > use the match object's .group method.
If I add the print it gives me error: import re import tkinter.filedialog import readfile j = 0 text = [] content = readfile.pattread() constraint = re.compile(r'(#C\[\w*\])') while j < len(content): result = constraint.search(content[j]) text.append(result) print(constraint.pattern) print(result.group(0)) print(text) print(repr(content[j])) j = j+1 (#C\[\w*\]) #C[Health] [<_sre.SRE_Match object at 0x10215de40>] '#D{#C[Health] #P[Information] - \n' (#C\[\w*\]) Traceback (most recent call last): File "/Users/sepidehghanavati/Desktop/Programs/python/Python3.3/Main Modules/testpattern.py", line 23, in <module> print(result.group(0)) AttributeError: 'NoneType' object has no attribute 'group' -- https://mail.python.org/mailman/listinfo/python-list