首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

在vb.net中,这样利用正则表达式替换引号,该如何处理

2012-02-02 
在vb.net中,这样利用正则表达式替换引号想利用正则表达式把一段中多个英文的引号,替换成中文的如: 大家

在vb.net中,这样利用正则表达式替换引号
想利用正则表达式把一段中多个英文的引号,替换成中文的
如: "大家 "好我这边有个 "问题 "请教 "大家 "
替换成:“大家”好我这边有个“问题”请教“大家”
用vb.net怎么实现??谢谢了!

[解决办法]
Dim strText As String = " " "大家 " " "
Dim byte1() As Byte = New Byte() {28, 32}
Dim byte2() As Byte = New Byte() {29, 32}
Dim str1, str2 As String
str1 = System.Text.UnicodeEncoding.Unicode.GetString(byte1)
str2 = System.Text.UnicodeEncoding.Unicode.GetString(byte2)
Dim s As String = str1 + "abcd " + str2
strText = Regex.Replace(strText, "(? <y1> " ")(? <data> \w+)(? <y2> " ") ", str1 + "$2 " + str2)
MsgBox(strText)
[解决办法]
楼主问道:

想利用正则表达式把一段中多个英文的引号,替换成中文的
如: "大家 "好我这边有个 "问题 "请教 "大家 "
替换成:“大家”好我这边有个“问题”请教“大家”
用vb.net怎么实现??谢谢了!
--------------------------------------------------

如果有引号的嵌套,将会导致歧义。
所以不考虑引号的嵌套,认为相邻最近的两个引号是一对,可以使用如下正则表达式替换:

匹配模板: ( ")(.+?)( ")
测试字符串: "大家 "好我这边有个 "问题 "请教 "大家 "
替换为: “${2}”
替换结果: “大家”好我这边有个“问题”请教“大家”

不知能否满足楼主要求?


热点排行