请问如何用正则表达式匹配下面的字符串?

来源:百度知道 编辑:UC知道 时间:2024/05/22 03:29:36
请问如何用正则匹配下面的字符串:<A href=domestic.asp?currentpage=1>[ 1 ]</a>

其中1是变量,要把上面的全部替换为空,函数已写好了。不好意思,没分了,有答案以后给加上。
是用在ASP中的VB:是一个翻页链接,其中的1可能是1,2,3...
函数写好了,要匹配这个:<A href=domestic.asp?currentpage=1>[ 1 ]</a>

正则匹配:<\s* A \s+href\s*=\s*domestic\.asp\? currentpage=\d>\[\s*\d\s*\]\s*</a>
错在哪里呀?

你用什么语言?我这个上C#的例子在其他语言上稍有不同,大体上差不多.

<[a-z]+[\w]*.*?>(?<value>.*?)</[a-z]+[\w]*>
value匹配的是[1]

要是想替换可以用这个函数:
Regex.Replace(
str, // 原始字符串
@"<[a-z]+[\w]*.*?>(?<value>.*?)</[a-z]+[\w]*>",
"${value}", // 要替换的字符串
RegexOptions.Singleline
);

这个可以去除标记,留下[1]

错在开始的\s上,标记<和A之间没有空格,这个是html语法规定的
还有asp\? curr这里curr前面应该没有空格.
<\s* A在A的前面应该没有空格.
<\s* A \s在\s前面应该没有空格.

应该是:
"<A\s+href\s*=\s*domestic.asp\?currentpage=\d>\[\s*\d\s*\]\s*</a>"
注意复制时两边不要有任何空格.

我这里有个PHP的正则表达式实例,你可以参考下,ASP或者其他的没研究过。
function url($Str){
$pattern="\[url=((http|ftp):(//|\\\\)){1}([0-9_a-z]+\.){2}(com|net|cn|gov|org|tv|cc|name|com.cn|net.cn|org.cn|gov.cn){1}((/[0-9_a-z]+)+\.[0-9_a-z]{3,})?\]