找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1787|回复: 12

[求助] xd::String:RegExpS 是不是不支持 "(?<=xx)\\d{3}"

[复制链接]

已领礼包: 61个

财富等级: 招财进宝

发表于 2014-5-21 11:31:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
零宽度正回顾断言,这种模式会提示错误: 发生意外。
怎么破?
可有替代的写法?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-5-21 16:14:07 | 显示全部楼层
正则表达式有很多流派,XD::String:RegExps 使用的是VB SCRIPT的正则语法,你的写法有可能VB不识别,你下载个VB的正则表达测试工具测试下你的写法是否支持。

点评

又摆了几回渡,看来是真不支持  详情 回复 发表于 2014-5-21 18:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 61个

财富等级: 招财进宝

 楼主| 发表于 2014-5-21 18:23:05 | 显示全部楼层
newer 发表于 2014-5-21 16:14
正则表达式有很多流派,XD::String:RegExps 使用的是VB SCRIPT的正则语法,你的写法有可能VB不识别,你下载 ...

又摆了几回渡,看来是真不支持
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2014-6-1 15:28:35 | 显示全部楼层
MSDN 资料

(?:pattern)
匹配 pattern 但不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。这对于用“or”字符 (|) 组合模式部件的情况很有用。例如,'industr(?:y|ies) 是比 'industry|industries' 更经济的表达式。
(?=pattern)
执行正向预测先行搜索的子表达式,该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,'Windows (?=95|98|NT|2000)' 匹配“Windows 2000”中的“Windows”,但不匹配“Windows 3.1”中的“Windows”。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。
(?!pattern)
执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,'Windows (?!95|98|NT|2000)' 匹配“Windows 3.1”中的 “Windows”,但不匹配“Windows 2000”中的“Windows”。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。

忽略最后的数字
_$ (xd::string:regexps "[0-9]+(?=[^0-9]+)" "中国12232中国2df333美国33333" "")
nil
("12232" "2" "333")
_$
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-22 19:13:24 | 显示全部楼层

变通下,查询 自定字符串后带数字,然后在substr

(substr (xd::string:regexps "XX\\d+" str) (1- (strlen xx)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-22 19:20:24 | 显示全部楼层
直接获得  = 后面的数字,

命令: (xd::string:regexps "(?!=)\\d+" "CAD=123CAD" "")
("123")

C前面的数字:
命令: (xd::string:regexps "\\d+(?=C)" "CAD=123CAD" "")
("123")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-10-24 07:58:52 | 显示全部楼层

Command: (xd::string:regexps "(?!=)\\d+" "CAD=123CAD" "") ("123")
Command: (xd::string:regexps "(?=)\\d+" "CAD=123CAD" "")
("123")
这两句结果一样,有什么不同 呢?

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-24 08:29:08 | 显示全部楼层

命令: (xd::string:regexps "(?=)\\d+" "CA123CAD" "")
("123")

所以你那个

命令: (xd::string:regexps "(?=)\\d+" "CAD=123CAD" "")
("123")

命令: (xd::string:regexps "(?=)\\d+" "CA123CA12D" "")
("123" "12")

和=是无关的。并不是得到 = 后面跟着的数字

再看看

命令: (xd::string:regexps "(?!d)\\d+" "abcd345fafaf" "")
("345")
命令: (xd::string:regexps "(?d)\\d+" "abcd345fafaf" "")
错误: 发生意外。

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-24 08:32:47 | 显示全部楼层

你这个 Command: (xd::string:regexps "(?=)\\d+" "CAD=123CAD" "")

只是执行正向预测但 (?=)前面并没有模式去找,数字是后面的\\d+返回的。
你这个写法就是找数字。

和   (xd::string:regexps "\\d+" "CAD=123CAD" "") 是一样的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-24 08:33:10 | 显示全部楼层

你这个 Command: (xd::string:regexps "(?=)\\d+" "CAD=123CAD" "")

只是执行正向预测但 (?=)前面并没有模式去找,数字是后面的\\d+返回的。
你这个写法就是找数字。

和   (xd::string:regexps "\\d+" "CAD=123CAD" "") 是一样的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-10-24 08:40:49 | 显示全部楼层

还是不够通俗,听得糊涂
(?=pattern)正向预查
(?!pattern)负向预查

(xd::string:regexps "(?d)\\d+" "abcd345fafaf" "")为什么会发 生错误呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-24 08:42:09 | 显示全部楼层
没有这用法啊 (?d)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 12个

财富等级: 恭喜发财

发表于 2020-11-15 15:14:14 | 显示全部楼层
非常希望可以用你的CAD菜单,付些费用也可以,如可以请QQ510438061联系我一下。感谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 04:07 , Processed in 0.226409 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表