在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}”
替换结果: “大家”好我这边有个“问题”请教“大家”
不知能否满足楼主要求?