Python正则表达式在最后一个正斜杠之间和第一个连字符之间获取文本

And*_*ndy 1 python regex parsing

我需要解析一个URL,并从以下地址获取1585710:

http://www.example.com/0/100013573/1585710-key-description-goes-here
Run Code Online (Sandbox Code Playgroud)

所以这意味着它介于最后/之前和之前 -

我对正则表达式的经验很少,这对我来说是一个非常难以理解的概念.

任何帮助或帮助将不胜感激

编辑:使用Python.

Avi*_*Raj 7

使用以下正则表达式并从组索引1中获取数字.

^.*\/([^-]*)-.*$
Run Code Online (Sandbox Code Playgroud)

DEMO

码:

>>> import re
>>> s = "http://www.example.com/0/100013573/1585710-key-description-goes-here"
>>> m = re.search(r'^.*\/([^-]*)-.*$', s, re.M)
>>> m
<_sre.SRE_Match object at 0x7f8a51f07558>
>>> m.group(1)
'1585710'
>>> m = re.search(r'.*\/([^-]*)-.*', s)
>>> m.group(1)
'1585710'
>>> m = re.search(r'.*\/([^-]*)', s)
>>> m.group(1)
'1585710'
Run Code Online (Sandbox Code Playgroud)

说明:

  • .*\/匹配最后一个/符号的所有字符.
  • ([^-]*)捕获任何字符但不是-零次或多次.
  • -.* 匹配所有剩余的字符.
  • group(1)包含第一个捕获组捕获的字符.打印组(1)将给出所需的结果.