自己写了段正则表达式代码想将软件名称拆为软件名及版本号,代码如下: 
<% 
Dim s,re 
set re = New RegExp 
re.IgnoreCase = True 
re.Global = True 
s = "诺顿系统修复专家2005简体中文绿色版" 
re.Pattern = "(^.+)(完美|硬盘|测试|适用|完全|中文|繁体|绿色|正式|Build|标准|简体)(.+$)" 
Response.Write re.Replace(s, "$1") & "<br>" 
Response.Write re.Replace(s, "$2$3") & "<br>" 
Response.Write s 
%>  
希望得到的结果为: 
软件名称:诺顿系统修复专家2005 
版本号:简体中文绿色版 得到结果却如下: 
软件名称:诺顿系统修复专家2005简体中文 
版本号:绿色版 希望有高手赐教!谢谢! 

解决方案 »

  1.   

    re.Pattern = "(^.+)(完美|硬盘|测试|适用|完全|中文|繁体|绿色|正式|Build|标准|简体)(.+$)" 
    改为
    re.Pattern = "(^.+?)(完美|硬盘|测试|适用|完全|中文|繁体|绿色|正式|Build|标准|简体)(.+$)"
      

  2.   

    呵呵,谢谢,root_(千年) !
    问题解决!
      

  3.   

    我正好也找到问题所在,也把关键贴出来!
    "?"  当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。