|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 weiyingde 于 2024-8-25 13:09 编辑
目的:匹配每小题中的解析,然后将每个解析中的 “解析 ”、A项……;B……;C项……等捕获出来,译作后用。每个解析项要求四个捕获。
问题:1、(^解析[^\r]*)用了分组,却没捕获;
2、一、二项做一个捕获;
3、最后一项一个捕获;
一共2个捕获,缺两个捕获。
请问:1、红色的括号为什么没有捕获?
2、为什么A、B、C、(或D)没有分别捕获?问题出在哪里?
3、请大侠结合源代码修改,并赐教。
有缘光顾,谢谢援手
代码如下:
Sub 要求匹配解析捕获四个()
Dim mt, mk, oRng As Range, n&, m&, str$, tt$, arr() As Range 'arr()不申明也没关系
Dim rg As Range, x%, dic As Object, k&, a
Set dic = CreateObject("Scripting.Dictionary")
osr = ActiveDocument.Content
str = Replace(Replace(osr, Chr(7), 0), Chr(1), 0)
With CreateObject("vbscript.regexp")
.Global = True: .Ignorecase = False: .MultiLine = True
'.Pattern = "(^解析[^\r]*)([A-D])((?:(?![A-D\r]).)+)\r"
.Pattern = "(^解析[^\r]*)([A-D](?:(?![A-D\r]).)*)\r"
For Each mt In .Execute(str)
MsgBox mt.submatches(1)
Next
End With
End Sub
附件如下:
|
|