正则表达式的零宽先行断言,在VB中不能使用么?

zengjd 2007-11-20 04:17:35
正则表达式的零宽先行断言,在VB中不能使用么?
...全文
255 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vbman2003 2007-11-22
  • 打赏
  • 举报
回复
查了下MS的相关资料,VBScript的确不支持这个,只有(?=exp)和负向(?!exp)
zengjd 2007-11-22
  • 打赏
  • 举报
回复
如果不支持,有什么解决的办法么?
有什么方法可以达到同样的效果?
zengjd 2007-11-21
  • 打赏
  • 举报
回复
请高手帮忙解决啊!
zengjd 2007-11-21
  • 打赏
  • 举报
回复
有没有高手能解决啊?
wzxpn 2007-11-21
  • 打赏
  • 举报
回复
根据MSDN6.0上的帮助,reg1.0和5.5都不支持这个符号,如果有谁能告诉我它在.net中的dll文件是哪一个,或许能够解决。
zengjd 2007-11-20
  • 打赏
  • 举报
回复
在RegexTester中没有错误。但是VB中有错误!
vbman2003 2007-11-20
  • 打赏
  • 举报
回复
晕倒,向后不行 (?<=\w+)
分组也不行 (?<Word>\w+)
貌似 用<就不行,郁闷了。不过我是初学正则,看看有那位能解决?
zengjd 2007-11-20
  • 打赏
  • 举报
回复
帮忙试验一下,我弄一下午了,没结果啊。
vbman2003 2007-11-20
  • 打赏
  • 举报
回复
哦,分组是对的,看眼花了
vbman2003 2007-11-20
  • 打赏
  • 举报
回复
我正则才入门,这个看了都头晕 :)
你这个语法貌似不正确,分组结构不对,你下个RegexTester,一部分一部的测试吧,VB中零宽断言肯定是可以的
zengjd 2007-11-20
  • 打赏
  • 举报
回复
(?<=[\u4E00-\u9FFF]+)[ん|ン|ー|ー|ぁ|ぃ|ぅ|ぇ|ぉ|ぅ|ゃ|ょ|ゅ|っ]+[あ-んア-ン]+(?=[\u4E00-\u9FFF]+)

这个为什么出错误?
vbman2003 2007-11-20
  • 打赏
  • 举报
回复
可以,如:

Dim s As String
Dim re As RegExp
Dim mh As Match
Dim mhs As MatchCollection

s = "I'm singing while you're dancing."

Set re = New RegExp
re.Global = True
re.Pattern = "\b\w+(?=ing\b)"
If re.Test(s) = True Then
Set mhs = re.Execute(s)
For Each mh In mhs
Debug.Print mh.Value
Next
End If

结果:
sing
danc

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧