只有两个关键字最好不用正则,IF INSTR两次就可以了,如果关键字多一点,可以使用for循环,例如:
str = ".需要处理的字符串,可以从文件、区域、数组等.."
for each t in array("中国人民","美国纽约","印度阿三")
if instr(str,t)>0 then
str = t
exit for
end if
next t
比正则表达式简单和高效。
你可以用Replace函数去掉“中国人民”和"美国纽约"两端的字符.具体程序如下:
Public Sub TestReplace()
Dim ss, re, rv
ss = "12苏5a中国人民一二d三"& vbNewLine &"egg其d中国人民四a1五六"& vbNewLine&"凡dsf事都美国纽约AAFa分"& vbNewLine&"发的事都美国纽约A分Fa分" & vbNewLine
Set re = New RegExp
re.Pattern = "^\S+(中国人民|美国纽约)\S+$"
re.Global = True
re.IgnoreCase = True
re.MultiLine = True
rv = re.Replace(ss, "$1")
MsgBox rv
End Sub
excel的替换功能比较弱,可以将数据粘贴到word进行替换,word通配符种类较多。
需要你将具体数据示例出来才能知道如何解决。
正则多累人啊,你这么简单的东西就不要正则了吧
if instr(***,"中国人民")>0 then x=“中国人民”
if instr(***,"美国纽约")>0 then x=“美国纽约”
替换*中国人民*为中国人民即可
要代码,录个宏就看到