ExcelVBA,正则表达式,怎么替换一部分字符串

2024-12-04 07:00:35
推荐回答(5个)
回答1:

只有两个关键字最好不用正则,IF INSTR两次就可以了,如果关键字多一点,可以使用for循环,例如:

str = ".需要处理的字符串,可以从文件、区域、数组等.."
for each t in array("中国人民","美国纽约","印度阿三")
    if instr(str,t)>0 then
        str = t
        exit for
    end if
next t

比正则表达式简单和高效。

回答2:

你可以用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

回答3:

excel的替换功能比较弱,可以将数据粘贴到word进行替换,word通配符种类较多。
需要你将具体数据示例出来才能知道如何解决。

回答4:

正则多累人啊,你这么简单的东西就不要正则了吧
if instr(***,"中国人民")>0 then x=“中国人民”
if instr(***,"美国纽约")>0 then x=“美国纽约”

回答5:

替换*中国人民*为中国人民即可

要代码,录个宏就看到