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

我的正则表达式分为2个部分,怎么在匹配成功后,替换第2部分?我有一组字符串12苏5a中国人民一二d三egg其d中国人民四a1五六凡dsf事都美国纽约AAFa分发的事都美国... 我的正则表达式分为2个部分,怎么在匹配成功后,替换第2部分?
我有一组字符串

12苏5a中国人民一二d三
egg其d中国人民四a1五六
凡dsf事都美国纽约AAFa分
发的事都美国纽约A分Fa分
....
...
...
我写正则表达式可以写
^\S+(中国人民|美国纽约)\S+$
怎么在成功匹配以后,把“中国人民”和"美国纽约"两端的字符去掉
就留下
中国人民
中国人民
美国纽约
美国纽约
....
...
..
展开
 我来答
阳光上的桥
推荐于2018-03-15 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

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

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

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

紫薇参星
科技发烧友

推荐于2016-08-08 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3601万
展开全部

你可以用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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xxqlong
2018-07-06 · 知道合伙人软件行家
xxqlong
知道合伙人软件行家
采纳数:1487 获赞数:7110
15年以上网络规划、设计。 熟悉办公软件,掌握高级应用。

向TA提问 私信TA
展开全部
excel的替换功能比较弱,可以将数据粘贴到word进行替换,word通配符种类较多。
需要你将具体数据示例出来才能知道如何解决。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jzt46585
2018-03-15 · TA获得超过646个赞
知道小有建树答主
回答量:811
采纳率:85%
帮助的人:136万
展开全部
正则多累人啊,你这么简单的东西就不要正则了吧
if instr(***,"中国人民")>0 then x=“中国人民”
if instr(***,"美国纽约")>0 then x=“美国纽约”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你好么闵明
2018-03-15 · 梦游者说的梦话记录在这个地方
你好么闵明
采纳数:28 获赞数:127

向TA提问 私信TA
展开全部

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

要代码,录个宏就看到

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式