2 wangf1978 wangf1978 于 2014.11.25 22:13 提问

vb6如何按照特定字符串拆分word文档

比如有文档如下:
1.奥巴马不是马
2.奥巴马是人
3.奥巴马是人不是马

以此类推......在vb6中如何实现对模糊匹配序号,并依据序号将文档内容拆分,分别保存?

8个回答

devmiao
devmiao   Ds   Rxr 2014.11.25 22:14

可以用Split或者正则表达式。

Topc008
Topc008   Rxr 2014.11.25 22:28

先弄清楚文档中可能有一些什么符号,这样才能对症下药.....

wangf1978
wangf1978   2014.11.25 22:30

能提供源码范例么?符号就是数字序号加圆点。期待高手。

wangf1978
wangf1978   2014.11.25 22:30

能提供源码范例么?符号就是数字序号加圆点。期待高手。

devmiao
devmiao   Ds   Rxr 2014.11.25 22:36

google VB正则表达式 代码
使用 \d.\w+ 去匹配。

wangf1978
wangf1978   2014.11.25 22:39

对了,内容中还可能含有图片、表格等。

Topc008
Topc008   Rxr 2014.11.26 09:13

来一段简单的代码:正则和反向查找法,你自己参考着修改修改:
Sub test()
Dim w1 As String
w1 = "we.r186.er5.re5.r"
Debug.Print RegFindFH(w1)
Debug.Print RevFindFH(w1)
End Sub
Function RevFindFH(ByVal bStr As String) As String
''反向查找
Dim i As Long, k As Long, w1 As String, w2 As String
k = Len(bStr)
Do
i = InStrRev(bStr, ".", k, vbTextCompare)
If i = 0 Then Exit Do
k = i
Do
w2 = Mid$(bStr, k - 1, 1)
If InStr(1, "0123456789", w2, vbTextCompare) = 0 Then Exit Do
k = k - 1
Loop
w2 = Mid$(bStr, k, i - k + 1)
If w2 <> "." Then
'''此时可以在k前面插入换行符等操作
w1 = w2 & IIf(w1 <> "", "|", "") & w1
Else
k = k - 1
End If
Loop
RevFindFH = w1
End Function
Function RegFindFH(ByVal bStr As String) As String
''正则匹配
Dim Reg As New RegExp, Match, Matchs
Dim w1 As String
With Reg
.Pattern = "[0-9]{1,}."
.IgnoreCase = True
.Global = True
Set Matchs = .Execute(bStr)
For Each Match In Matchs
w1 = w1 & IIf(w1 <> "", "|", "") & Match.Value
Next
RegFindFH = w1
End With
End Function

wangf1978
wangf1978   2014.11.26 21:48

wordArange.Find.Execute("Rich", MatchCase, , , , , , wdFindContinue, , ReplaceString, True) '查找并替换
这是一句判断在 word 中查找并替换的代码。请问字符串“Rich”用正则表达式换成序号(如1.)怎样表示?只查找不替换怎么改?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!