Below is my multi-line string.
sample='''
blah
blah
blah
blah
text.get(
'hi'
'you're
'welcome'
)
text.get(
'hi'
'i'm
'here'
> )
blah
blah
blah
I want to match based on the symbol > and get the relevant text in the in the brackets
text.get(
'hi'
'i'm
'here'
> )
I tried this code
text(. )\((.*?)>(.*?)\) and it matches both the instances of text.get.Can someone please help on this
CodePudding user response:
Yoy can use
\btext\.\w \([^()]*\n> \)
See the regex demo. Details:
\b- a word boundarytext\.- atext.substring\w \(- one or more word chars and then an open parenthesis[^()]*- zero or more chars other than parentheses\n> \)- a newline, space and close parenthesis.
If you need to capture unknown parts of the match add the groups, e.g.
\btext\.(\w )\(([^()]*)\n> \)
In Python, do not forget to use the raw string literal: r'...'.
