我有一个网址:
http://example.com/(S(4txk2wasxh3u0slptzi20qyj))/CWC_Link.aspx
但我只想提取这部分:
(S(4txk2anwasxh3u0slptzi20qyj))/
请,任何人都可以为此建议我正则表达式
我有一个网址:
http://example.com/(S(4txk2wasxh3u0slptzi20qyj))/CWC_Link.aspx
但我只想提取这部分:
(S(4txk2anwasxh3u0slptzi20qyj))/
请,任何人都可以为此建议我正则表达式
关键是要注意()
字符标记了边界,并且/
内容中没有字符:
/(\(S\([^/()]+\)\))/
这是你的正则表达式。大括号中的部分将提取所需的片段
/^.+\/([^\/]+)\/.+$/
基本上,逻辑很简单:
^
- 标记字符串的开头
.+\/
- 匹配下一部分之前的所有符号。这部分正则表达式的组成考虑了正则表达式的默认“贪婪”行为,因此这部分与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))
这个正则表达式完成了这项工作:
\(.*\)\/
只需匹配一个左括号,然后匹配任何内容,直到带有正斜杠的右括号。