python - Pattern for '.' separated words with arbitrary number of whitespaces -
it's first time i'm using regular expressions in python , can't work.
here want achieve: want find strings, there word followed dot followed word. after unknown number of whitespaces followed either (off) or (on). example:
word1.word2 (off) here have come far.
string_group = re.search(r'\w+\.\w+\s+[(\(on\))(\(off\))]', analyzed_string) \w+ first word
\. dot
\w+ second word
\s+ whitespaces
[(\(on\))(\(off\))] (off) or (on)
i think last expression might not doing need to. implementation right now, program find right place in string, output of
string_group.group(0) is just
word1.word2 ( instead of whole expression i'm looking for. please give me hint doing wrong?
[ ... ] used character class, , match one character inside them unless put quantifier: [ ... ]+ 1 or more time.
but adding won't work...
\w+\.\w+\s+[(\(on\))(\(off\))]+ will match garbage stuff word1.word2 )(fno(nofn too, don't want use character class, because it'll match characters in order. can use capturing group, , non-capturing group along or operator |:
\w+\.\w+\s+(\((?:on|off)\)) (?:on|off) match either on or off
now, if don't parentheses, caught in first group, can change to:
\w+\.\w+\s+\((on|off)\)
Comments
Post a Comment