Python Regex match group after first character occurrence
up vote
0
down vote
favorite
First time working with Python Regex and I just need a little tip on matching strings.
I have a url like this: url = "https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&expire=1541769991&key=yttt1hl=&encaps=asrlang=enfmt=srv3"
I am trying to match everything except the part that begins with expire=1541769991
(2nd to last line). This is what I have come up with:
matchObj = re.match( r'(.*)expire=(.*)&(.*?)', url)
The problem is the third group includes the text after the last occurrence of &
. I want the text following the first occurrence of &
after expire=
. I tried adding a ?
after &
to make it non-greedy too. How would I go about doing this?
python regex
add a comment |
up vote
0
down vote
favorite
First time working with Python Regex and I just need a little tip on matching strings.
I have a url like this: url = "https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&expire=1541769991&key=yttt1hl=&encaps=asrlang=enfmt=srv3"
I am trying to match everything except the part that begins with expire=1541769991
(2nd to last line). This is what I have come up with:
matchObj = re.match( r'(.*)expire=(.*)&(.*?)', url)
The problem is the third group includes the text after the last occurrence of &
. I want the text following the first occurrence of &
after expire=
. I tried adding a ?
after &
to make it non-greedy too. How would I go about doing this?
python regex
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
First time working with Python Regex and I just need a little tip on matching strings.
I have a url like this: url = "https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&expire=1541769991&key=yttt1hl=&encaps=asrlang=enfmt=srv3"
I am trying to match everything except the part that begins with expire=1541769991
(2nd to last line). This is what I have come up with:
matchObj = re.match( r'(.*)expire=(.*)&(.*?)', url)
The problem is the third group includes the text after the last occurrence of &
. I want the text following the first occurrence of &
after expire=
. I tried adding a ?
after &
to make it non-greedy too. How would I go about doing this?
python regex
First time working with Python Regex and I just need a little tip on matching strings.
I have a url like this: url = "https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&expire=1541769991&key=yttt1hl=&encaps=asrlang=enfmt=srv3"
I am trying to match everything except the part that begins with expire=1541769991
(2nd to last line). This is what I have come up with:
matchObj = re.match( r'(.*)expire=(.*)&(.*?)', url)
The problem is the third group includes the text after the last occurrence of &
. I want the text following the first occurrence of &
after expire=
. I tried adding a ?
after &
to make it non-greedy too. How would I go about doing this?
python regex
python regex
asked Nov 9 at 23:40
st4rgut
5391818
5391818
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
2
down vote
accepted
Try this regex,
matchObj = re.match( r"(.*)expire=[^&]*(&.*)", url)
add a comment |
up vote
1
down vote
You could do something like this:
import re
url = "https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&expire=1541769991&key=yttt1hl=&encaps=asrlang=enfmt=srv3"
match = re.match("(.+?)(expire=.+?&)(.+$)", url)
print(match.group(1) + match.group(3))
Output
https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&key=yttt1hl=&encaps=asrlang=enfmt=srv3
Or if you simply want the text without the expire=
, you can remove it:
result = re.sub("expire=d+?&", "", url)
Note that assumes that the value of expire are all digits.
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
accepted
Try this regex,
matchObj = re.match( r"(.*)expire=[^&]*(&.*)", url)
add a comment |
up vote
2
down vote
accepted
Try this regex,
matchObj = re.match( r"(.*)expire=[^&]*(&.*)", url)
add a comment |
up vote
2
down vote
accepted
up vote
2
down vote
accepted
Try this regex,
matchObj = re.match( r"(.*)expire=[^&]*(&.*)", url)
Try this regex,
matchObj = re.match( r"(.*)expire=[^&]*(&.*)", url)
answered Nov 9 at 23:52
Pruthvi Vooka
361
361
add a comment |
add a comment |
up vote
1
down vote
You could do something like this:
import re
url = "https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&expire=1541769991&key=yttt1hl=&encaps=asrlang=enfmt=srv3"
match = re.match("(.+?)(expire=.+?&)(.+$)", url)
print(match.group(1) + match.group(3))
Output
https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&key=yttt1hl=&encaps=asrlang=enfmt=srv3
Or if you simply want the text without the expire=
, you can remove it:
result = re.sub("expire=d+?&", "", url)
Note that assumes that the value of expire are all digits.
add a comment |
up vote
1
down vote
You could do something like this:
import re
url = "https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&expire=1541769991&key=yttt1hl=&encaps=asrlang=enfmt=srv3"
match = re.match("(.+?)(expire=.+?&)(.+$)", url)
print(match.group(1) + match.group(3))
Output
https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&key=yttt1hl=&encaps=asrlang=enfmt=srv3
Or if you simply want the text without the expire=
, you can remove it:
result = re.sub("expire=d+?&", "", url)
Note that assumes that the value of expire are all digits.
add a comment |
up vote
1
down vote
up vote
1
down vote
You could do something like this:
import re
url = "https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&expire=1541769991&key=yttt1hl=&encaps=asrlang=enfmt=srv3"
match = re.match("(.+?)(expire=.+?&)(.+$)", url)
print(match.group(1) + match.group(3))
Output
https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&key=yttt1hl=&encaps=asrlang=enfmt=srv3
Or if you simply want the text without the expire=
, you can remove it:
result = re.sub("expire=d+?&", "", url)
Note that assumes that the value of expire are all digits.
You could do something like this:
import re
url = "https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&expire=1541769991&key=yttt1hl=&encaps=asrlang=enfmt=srv3"
match = re.match("(.+?)(expire=.+?&)(.+$)", url)
print(match.group(1) + match.group(3))
Output
https://www.youtube.com/api/timedtext?xorp=True&xoaf=1&v=UloIw7dhnlQ&signature=C2AF3C2887A37043353A86AAAACFA796659B56CB.E736B7146447843F2D3311234744DC0D9937AF7B&asr_langs=fr%2Cru%2Ces%2Cnl%2Cit%2Cde%2Cko%2Cen%2Cpt%2Cja&sparams=asr_langs%2Ccaps%2Cv%2Cxoaf%2Cxorp%2Cexpire&key=yttt1hl=&encaps=asrlang=enfmt=srv3
Or if you simply want the text without the expire=
, you can remove it:
result = re.sub("expire=d+?&", "", url)
Note that assumes that the value of expire are all digits.
answered Nov 9 at 23:52
Daniel Mesejo
8,4291923
8,4291923
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53234644%2fpython-regex-match-group-after-first-character-occurrence%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown