TC官方合作论坛

标题: 正则表达式怎么用啊,请教 [打印本页]

作者: a394349543    时间: 2018-3-10 17:03
标题: 正则表达式怎么用啊,请教
比如 微信聊天里 识别出来的文字是   “黄瓜100冬瓜120”  ,这样把他用正则表达式来处理都分开出来。怎么弄的呢,哪个大神能帮忙下吗

作者: 剑仙十号    时间: 2018-3-10 18:19

\d匹配单个数字。等价于[0-9]。
\D匹配单个 不是数字的字符。等价于[^0-9]

第三节:贪婪符“+”,贪婪符“*”。
“+”和“*”,也是用来修饰前一个字符的。
“+”前面的这个字符,必须出现1次,也可以出现无限次。
“*”前面的这个字符,可以出现0次,也可以出现无限次。

(\D)+(\d)+
作者: 剑仙十号    时间: 2018-3-10 19:04
用"()"标记的子表达式,是一个整体。
var 表达式1 = "..qqqq?.."
var 表达式2 = "..(qqqq)?.."
.
跟从符"?",影响的只是一个q。
跟从符"?",影响的是一个整体,影响4个q。
“{n}”前面的东西,限定出现n次。
“{n,m}”前面的东西,最少出现n次,最多出现m次。
“{n,}”前面的东西,最少出现n次,最多出现无限次。

var 表达式 = "(\\D){2,4}(\\d){2,4}"
作者: chen1882729    时间: 2018-3-10 23:43
变量 待匹配的字符串,匹配中文数组,匹配数组数组
待匹配的字符串="黄瓜100冬瓜120"
//匹配中文
匹配中文数组=正则表达式匹配(待匹配的字符串,"[\\u4e00-\\u9fa5]+",假,真)
//匹配数字
匹配数组数组==正则表达式匹配(待匹配的字符串,"[1-9]\\d*",假,真)
调试输出(匹配中文数组)
调试输出(匹配数组数组)

作者: a394349543    时间: 2018-3-12 02:29
chen1882729 发表于 2018-3-10 23:43
变量 待匹配的字符串,匹配中文数组,匹配数组数组
待匹配的字符串="黄瓜100冬瓜120"
//匹配中文

为什么返回是空的呢
作者: chen1882729    时间: 2018-3-12 11:57
a394349543 发表于 2018-3-12 02:29
为什么返回是空的呢



抱歉,我是在网页版正则写的,不是TC写的第一句语法与TC不兼容不。第二句多了个等号

作者: a394349543    时间: 2018-3-12 12:06
chen1882729 发表于 2018-3-12 11:57
抱歉,我是在网页版正则写的,不是TC写的第一句语法与TC不兼容不。第二句多了个等号
...

都是空的
作者: 剑仙十号    时间: 2018-3-12 12:52
//var 表达式 = "...."
//var arr=正则表达式匹配(…, …, 是否_不区分大小写, 是否全局, 是否Unicode码, 是否多行)

var 源字符串 = "黄瓜100冬瓜120"
var 表达式 = "(\\D){2,4}(\\d){2,4}"
var arr=正则表达式匹配(源字符串,表达式,假,真,假,真)
var n = 数组大小(arr)
if(n > 0)
for(var i = 0;  i < n;  i++)
  traceprint(arr[i])
end
end

先归类分开。
汉字和数字,还可以继续分开。
作者: 剑仙十号    时间: 2018-3-12 12:57
正则表达式。目录课:
http://bbs.tyuyan.net/forum.php?mod=viewthread&tid=65817&mobile=no
第二课:
http://bbs.tyuyan.net/forum.php?mod=viewthread&tid=65819&mobile=no
作者: chen1882729    时间: 2018-3-13 02:58
a394349543 发表于 2018-3-12 12:06
都是空的

图都截图出来了,还说空就没办法了




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1