我有一个网址:
http://example.com/(S(4txk2wasxh3u0slptzi20qyj))/CWC_Link.aspx
但我只想提取这部分:
(S(4txk2anwasxh3u0slptzi20qyj))/
拜托,有人可以建议我使用正则表达式吗
答案 0 :(得分:1)
关键是要注意()
个字符标记边界,内容中没有/
个字符:
/(\(S\([^/()]+\)\))/
答案 1 :(得分: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))
答案 2 :(得分:0)
这个正则表达式完成了这项工作:
\(.*\)\/
只需匹配一个左括号,然后匹配任何东西,直到带有正斜杠的结束括号。