I'm new to Python. Does someone has an idea what's wrong. I tried everything. The only regex that is tested is the last one in a whole list of regex in keywords.txt
Thanks! Martin
########
def checkKeywords( str, lstKeywords ):
for regex in lstKeywords: match = re.search(regex, str,re.IGNORECASE)
# If-statement after search() tests if it succeeded
if match:
print match.group() ##just debugging
return match.group() ## 'found!
return
#########
keywords1 = [line for line in open('keywords1.txt')]
resultKeywords1 = checkKeywords("string_to_test",keywords1)
print resultKeywords1
> I'm new to Python.
> Does someone has an idea what's wrong. I tried everything. The only regex that is tested is the last one in a
> whole list of regex in keywords.txt
> Thanks!
> Martin
> for regex in lstKeywords:
> match = re.search(regex, str,re.IGNORECASE)
> # If-statement after search() tests if it succeeded
> if match:
> print match.group() ##just debugging
> return match.group() ## 'found!
> return
> #########
> keywords1 = [line for line in open('keywords1.txt')]
> resultKeywords1 = checkKeywords("string_to_test",keywords1)
> print resultKeywords1
Hi Martin,
It is always helpful to provide python version, operating system version, full error message,
and input/expected output for the code. Now I can tell you are using Python 2.x but without having any clue what is in keywords1.txt it is impossible to figure out
what the problem might be. Other than using regular expressions that is. :)
Ramit Prasad
This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.
On Tue, Oct 23, 2012 at 1:51 PM, MartinD. <cyberdi...@gmail.com> wrote:
> Hi,
> I'm new to Python.
> Does someone has an idea what's wrong. I tried everything. The only regex that is tested is the last one in a whole list of regex in keywords.txt
> Thanks!
> Martin
How do you know that it's the only one being tested? Your debugging
statement only prints one that actually matches, not each one that is
tried.
> keywords1 = [line for line in open('keywords1.txt')]
Note that each "keyword" will including the trailing newline, if any.
This is probably why you are only seeing the last keyword match:
because it is the only one without a trailing newline.
To remove the newlines, call the str.strip or str.rstrip method on
each line, or use the str.splitlines method to get the keywords:
> I'm new to Python.
> Does someone has an idea what's wrong. I tried everything. The only regex that is tested is the last one in a whole list of regex in keywords.txt
> Thanks!
> Martin
> for regex in lstKeywords:
> match = re.search(regex, str,re.IGNORECASE)
> # If-statement after search() tests if it succeeded
> if match:
> print match.group() ##just debugging
> return match.group() ## 'found!
> return
> #########
> keywords1 = [line for line in open('keywords1.txt')]
> resultKeywords1 = checkKeywords("string_to_test",keywords1)
> print resultKeywords1
Hi,
just a wild guess, as I don't have access to containing the list of
potentially problematic regex patterns
does:
keywords1 = [line.strip() for line in open('keywords1.txt')]
possibly fix yout problem?
the lines of the file iterator also preserve newlines, which might not
be expected in your keywords, strip() removes (be default) any
starting and tryiling whitespace.