如何用正则表达式把括号中的数据提出?

下面是一个PDF伪码,我用fso读出,要把像(*)Tj个括号中间的数据全部提出来,如(PaperSamplingRequestReport)Tj中的"PaperSampl... 下面是一个PDF伪码,我用fso读出,要把像 (*) Tj 个括号中间的数据全部提出来,如(Paper Sampling Request Report) Tj中的"Paper Sampling Request Report",应该如何做呢~~~

13.92 595.20 TD
/F0 10.00 Tf
(Run Date:) Tj
ET
q
65.80 594.04 111.96 9.76 re W n
BT
65.80 594.44 TD
(05-JUL-11 04:07:21) Tj
ET
Q 0 g 0 G
BT
32.92 585.44 TD
/F0 10.00 Tf
(Page:) Tj
ET
q
65.76 582.80 31.00 11.24 re W n
BT
91.24 584.72 TD
(1) Tj
ET
Q 0 g 0 G
BT
265.00 594.80 TD
/F0 10.00 Tf
(Paper Sampling Request Report) Tj
308.76 1.20 TD
(Report: PXINVR10813) Tj
我是用下面的VBA代码来获取的,但试了所有回答的都不行。。还望帮忙。
Function RegPDF(str As String)
Dim oReg As Object, mhs As Object, mh As Object
Set oReg = CreateObject("vbscript.regexp")
With oReg
.Global = True
.Pattern = "\((.*?)\)\sTj"
End With
Set mhs = oReg.Execute(str)
If mhs.Count Then
Reg = mhs(0).SubMatches(0)
End If
End Function
?RegPDF("(Paper Sampling Request Report) Tj")=Paper Sampling Request Report 的才算对。
展开
 我来答
mooncar
2011-07-12 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:103
采纳率:0%
帮助的人:122万
展开全部
(?<=\()[\w\W]*?(?=\)\s*Tj)正则表达式工具测试里通过,代码中没有测试

在代码中,相关字符需要转义

你代码中:
Pattern="(?<=\\()[\\w\\W]*?(?=\\)\\s*Tj)"; //这样试试,转义后的,vba没有用过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
计名pS
2011-07-13 · TA获得超过3649个赞
知道大有可为答主
回答量:4189
采纳率:0%
帮助的人:2196万
展开全部
''''''''''''''''''Set mhs = oReg.Execute(str)
''''''''''''''''''''''If mhs.Count Then
'''''''''''''''''''''Reg = mhs(0).SubMatches(0)
'''''''''''''''''''''''End If

.Pattern = "(?<=\()([^\)]+)(?=\) Tj)"

Set Matches = oReg.Execute(str)
For Each Match in Matches
s = Match.Value
Next
End Function
追问
你的正则我修改了一下可以找到正确的值,但是前面的括号如何去掉?
.Pattern = "(?=\()([^\)]+)(?=\) Tj)"
------------------------------------------------------------------------
?RegPDF("(Paper Sampling Request Report) Tj")
(Paper Sampling Request Report
追答
哦...VB不支持  "后向环视 "

.Pattern = "\b([^\(\)]+)(?=\) Tj)"
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
透其下6348
2011-07-12 · 超过15用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:58.9万
展开全部
注释了\(\)
更多追问追答
追问
能否说得详细一点。。。我有试过 .Pattern = ".*\((.*)\)"但是没有用。。
追答
\((.*?)\)\sTj或者^[(](.*?)[)]\sTj
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式