+ -
当前位置:首页 → 问答吧 → 正则匹配的小问题

正则匹配的小问题

时间:2011-06-08

来源:互联网

各位兄弟,帮我看看,我想将以下字符串:
C1 [Pillai, Vijayamohanan K.] CECRI Chennai Ctr, Taramanii 600113, India.[Kannan, Ramaiyan; Kagalwala, Husain N.; Chaudhari, Harshal D.; Kharul, Ulhas K.; Kurungot, Sreekumar] Natl Chem Lab, Div Phys Chem, Pune 411008, Maharashtra, India. RP

转变成
C1 CECRI Chennai Ctr, Taramanii 600113, India.Natl Chem Lab, Div Phys Chem, Pune 411008, Maharashtra, India. RP

也即匹配[...]字符串多次,并替换为空字符
正则应该怎么写呢?我已经写了个,但都不理想。还望大家赐教。

VBScript code


<%
Dim txtStr,oStr
oStr = "C1 [Pillai, Vijayamohanan K.] CECRI Chennai Ctr, Taramanii 600113, India.[Kannan, Ramaiyan; Kagalwala, Husain N.; Chaudhari, Harshal D.; Kharul, Ulhas K.; Kurungot, Sreekumar] Natl Chem Lab, Div Phys Chem, Pune 411008, Maharashtra, India. RP"

txtStr = filterStr(oStr)
Response.Write "transform str:<br />"& oStr & "<br />"
Response.Write "transformed str:<br /><font color=red>"& txtStr &"</font>"
Response.End

Function filterStr(txt)
    Set re = New regExp
    re.pattern = "(^C1\s)(?:\[.*?\])+(.*?)(\sRP$)"

    re.global = True
    re.IgnoreCase = True
    re.MultiLine = True
    filterStr = re.Replace(txt,"$1$2$3")
End Function
%>


作者: whlib   发布时间: 2011-06-08

C# code

\[[^\]*]\]//这个直接全部替换为空即可

作者: luxu001207   发布时间: 2011-06-08

Dim txtStr,oStr
oStr = "C1 [Pillai, Vijayamohanan K.] CECRI Chennai Ctr, Taramanii 600113, India.[Kannan, Ramaiyan; Kagalwala, Husain N.; Chaudhari, Harshal D.; Kharul, Ulhas K.; Kurungot, Sreekumar] Natl Chem Lab, Div Phys Chem, Pune 411008, Maharashtra, India. RP"

txtStr = filterStr(oStr)
Response.Write "transform str:<br />"& oStr & "<br />"
Response.Write "transformed str:<br /><font color=red>"& txtStr &"</font>"
Response.End

Function filterStr(txt)
  Set re = New regExp
  re.pattern = "(^C1\s)(?:\[.*?\])+(.*?)(\sRP$)"

  re.global = True
  re.IgnoreCase = True
  re.MultiLine = True
  filterStr = re.Replace(txt,"\[.?+\]")
End Function

作者: aspwebchh   发布时间: 2011-06-08

Dim txtStr,oStr
oStr = "C1 [Pillai, Vijayamohanan K.] CECRI Chennai Ctr, Taramanii 600113, India.[Kannan, Ramaiyan; Kagalwala, Husain N.; Chaudhari, Harshal D.; Kharul, Ulhas K.; Kurungot, Sreekumar] Natl Chem Lab, Div Phys Chem, Pune 411008, Maharashtra, India. RP"

txtStr = filterStr(oStr)
Response.Write "transform str:<br />"& oStr & "<br />"
Response.Write "transformed str:<br /><font color=red>"& txtStr &"</font>"
Response.End

Function filterStr(txt)
  Set re = New regExp
  re.pattern = "\[.*?\]"

  re.global = True
  re.IgnoreCase = True
  re.MultiLine = True
  filterStr = re.Replace(txt,"")
End Function

作者: aspwebchh   发布时间: 2011-06-08