0

我有一个网址: http://example.com/(S(4txk2wasxh3u0slptzi20qyj))/CWC_Link.aspx

但我只想提取这部分: (S(4txk2anwasxh3u0slptzi20qyj))/

请,任何人都可以为此建议我正则表达式

4

3 回答 3

1

关键是要注意()字符标记了边界,并且/内容中没有字符:

/(\(S\([^/()]+\)\))/
于 2013-07-10T07:33:17.877 回答
0

这是你的正则表达式。大括号中的部分将提取所需的片段

/^.+\/([^\/]+)\/.+$/

基本上,逻辑很简单: ^- 标记字符串的开头

.+\/- 匹配下一部分之前的所有符号。这部分正则表达式的组成考虑了正则表达式的默认“贪婪”行为,因此这部分与http://farmer.gov.in/您的示例相匹配

([^\/]+)- 匹配两个斜线之间的所有符号

\/.+$- 匹配所有符号直到字符串的结尾

PHP 语言示例:

<?php
$string = "http://farmer.gov.in/(S(4txk2wasxh3u0slptzi20qyj))/CWC_Link.aspx";
$regex = "/^.+\/([^\/]+)\/.+$/";
preg_match($regex, $string, $matches);
var_dump($matches);
?>

在输出$matches[1]中将有您需要的值(S(4txk2wasxh3u0slptzi20qyj))

于 2013-07-10T07:34:06.030 回答
0

这个正则表达式完成了这项工作:

\(.*\)\/

只需匹配一个左括号,然后匹配任何内容,直到带有正斜杠的右括号。

于 2013-07-10T07:58:24.143 回答