标题:正则出现OLE错误,是不支持条件的写法吗?怎么修改
只看楼主
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
结帖率:86.67%
已结贴  问题点数:20 回复次数:20 
正则出现OLE错误,是不支持条件的写法吗?怎么修改
程序代码:
Clea
TEXT To Lc内容 Textmerge Pretext 7 Noshow
"id": "LiC6KN1E6UCB",

"name": "茸沂弃辺瑚哺",

"value": "本单位",

},{

"id": "LiB6KN1E6H6K",

"name": "钣齐栽怪末瘎儡斬损",

"value": "子公司",

},
ENDTEXT
TEXT To Lc条件 Textmerge Pretext 7 Noshow
(?<=name": ")[\u4e00-\u9fa5a-zA-Z]+
ENDTEXT

Local Loregexp,Cresults,Matches
Cresults = ""
Loregexp = Createobject("Vbscript.Regexp")
Loregexp .Pattern = Lc条件
Loregexp.Global = .T.
Loregexp.Ignorecase = .T.
Loregexp.Multiline    = .T.
Matches = Loregexp.Execute(Lc内容)


代码运行出现:OLE错误码0x800a1399: 未知的 COM 状态代码,错误。
这是什么原因?及怎么修改
搜索更多相关主题的帖子: 出现 修改 错误 OLE 条件 
2023-04-27 12:15
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
正则表达式异常
字符串格式似JSON,不用正则也可以
2023-04-27 16:14
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
得分:0 
以下是引用吹水佬在2023-4-27 16:14:39的发言:

正则表达式异常
字符串格式似JSON,不用正则也可以


在一些正则校验网站校验过条件表达式没问题,是不是Vbscript.Regexp不支持这种写法?
2023-04-27 18:23
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
"id": "LiC6KN1E6UCB",
这句左边是不是少了一个 {
2023-04-28 11:45
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:20 
程序代码:
Clea
TEXT To Lc内容 Textmerge Pretext 7 Noshow
"id": "LiC6KN1E6UCB",
"name": "茸沂弃辺瑚哺",
"value": "本单位",
},{
"id": "LiB6KN1E6H6K",
"name": "钣齐栽怪末瘎儡斬损",
"value": "子公司",
},
EndText

TEXT To Lc条件 Textmerge Pretext 7 Noshow
"name": "([\u4e00-\u9fa5a-zA-Z]+)"
ENDTEXT

Local Loregexp,Cresults,Matches
Cresults = ""
Loregexp = Createobject("Vbscript.Regexp")
Loregexp .Pattern = Lc条件
Loregexp.Global = .T.
Loregexp.Ignorecase = .T.
Loregexp.Multiline    = .T.
Matches = Loregexp.Execute(Lc内容)

For each oo in Matches
    ? oo.SubMatches(0)
EndFor


2023-04-28 13:29
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
你这加密后的串也许不止包含汉字和英文字符,说不定也包含些数字和符号,其实不管是些什么,都提取出来就好了
TEXT To Lc条件 Textmerge Pretext 7 Noshow
"name": "(.*?)"
ENDTEXT
2023-04-28 13:49
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
得分:0 
以下是引用csyx在2023-4-28 13:49:23的发言:

你这加密后的串也许不止包含汉字和英文字符,说不定也包含些数字和符号,其实不管是些什么,都提取出来就好了
TEXT To Lc条件 Textmerge Pretext 7 Noshow
"name": "(.*?)"
ENDTEXT



我怎么在发帖时会有预感,csyx版主能帮到我呢,谢谢你

TEXT To Lc条件 Textmerge Pretext 7 Noshow
"name": "(.*?)"
ENDTEXT
For each oo in Matches
    ? oo.SubMatches(0)
EndFor

这里是截取以"name": "开头的字串,然后利用冒号:来取子串吗?
还是下面这个?
(pattern)    匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性 


[此贴子已经被作者于2023-4-28 16:25编辑过]

2023-04-28 16:07
东海ECS
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:Python
等 级:版主
威 望:19
帖 子:376
专家分:1454
注 册:2023-1-24
得分:0 
提示: 该帖被管理员或版主屏蔽

会当凌绝顶,一览众山小.
2023-04-28 19:06
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
以下是引用东海ECS在2023-4-28 19:06:17的发言:
这里使用了 IIF 函数来判断 Loregexp 是否已经初始化,如果没有则创建它,否则直接使用。另外,为了防止 Loregexp 未初始化导致的错误,一般建议在代码开头就初始化 Loregexp。

又在这胡说八道,有本事你倒是把你的代码运行一遍啊,就会瞎咧咧
2023-04-29 07:27
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
以下是引用shonken在2023-4-28 16:07:34的发言:
这里是截取以"name": "开头的字串,然后利用冒号:来取子串吗?

也是提取子串,规则 "name": "[\u4e00-\u9fa5a-zA-Z]+"  含义是提取 起始于 "name": " 结束于 ", 内容只能是汉字或英文字符(且至少出现一次)的子串
大概相当于 vfp 的 StrExtract 函数,但功能比 StrExtract 强点儿,能限定子串的字符范围

你写的正则表达式也没毛病,要执行的 (?<=name": ") 就是 ?(询问)<=(起始于) name": ",后面是子串匹配规则 [\u4e00...A-Z] 汉字或英文字符,+ 至少出现一次
咋整呢,也许 Vbscript.Regexp 就是不支持这种正则语法,你问要如何修改,这个 COM 咱肯定是改不了,只好换个方式改 pattern

[此贴子已经被作者于2023-4-29 08:18编辑过]

2023-04-29 07:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-512058-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.327494 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved