2017-06-07 103 views
1

我想提取%3A之间的文本。使用正则表达式在文本之间获取文本

下面是示例语句:

http://www.sample.com/res?ccode=1232&note=sampletext&token=12Add-12sre-24Aod-23343-34kdi%3A3232121%3ATVLOPQUI%3AIOOPDA%3AKKKKK%3A&ltr=23232 

我想下面的表达式:

[&]{1}token[=]{1}([a-zA-Z0-9-%]*)(%3A(.*?)%3A){1} 

但料一句话是:

然而,它捕捉无效的事。

能否请你建议我,该怎么做更好的方式

+1

在这里你仅限于正则表达式吗? –

+0

感谢您回复Wikitor,是的,这里没有选择。我必须使用正则表达式 – Creator

+0

类似于:'(?<=%3A |:)(\ d +)'? –

回答

2

假设没有文字&的PARAMS里面,你可以使用下面的模式:

[&?]token=[^&%]*%3A([^%&]+) 

regex demo

详细

  • [&?]token= - 一个&token=?token=
  • [^&%]* - 比&其他零个或多个字符和%
  • %3A - 一个%3A
  • ([^%&]+) - 第1组捕获比%&其它1个或多个字符。
+1

谢谢Wiktor的快速帮助:) – Creator

相关问题