(转)对string.map 这几个函数功能的学习了下整理

By 笑口常 at 2020-11-02 • 0人收藏 • 138人看过

感谢: 圣地 提供源码

image.png

import console; 
//1、只有@1时,既省略@2、@3会设为"[-\d]+",同时省略@3会设为tonumber函数,将匹配结果传给tonumber处理后push到一数组中最后返回这个数组
console.log('\n1、只有@1时,既省略@2、@3会设为"[-\d]+",同时省略@3会设为tonumber函数,将匹配结果传给tonumber处理后push到一数组中最后返回这个数组')
var arr = string.map("123 456 789")
console.log("结果为:")
console.dump(arr);
//2、@2可以是一个字符串类型的模式串,用来在@1中查找,匹配到的所有结果会被push到一个数组中最后返回这个数组
console.log('\n2、@2可以是一个字符串类型的模式串,用来在@1中查找,匹配到的所有结果会被push到一个数组中最后返回这个数组')
var arr = string.map("123 456 789","\d+")
console.dump("结果:",arr);
//3、@2可以是包含模式串数组,数组中的前面模式串匹配结果会做为后面模式串的查询字符串逐步缩减,返回值为最后模式串匹配结果数组
//   其内部为string.search实现
console.log('\n3、@2可以是包含模式串数组,数组中的前面模式串匹配结果会做为后面模式串的查询字符串逐步缩减,返回值为最后模式串匹配结果数组')
var arr = string.map("123 456 789",{"\d+\s";"\d\s"}) //先找形如 "123 " 再找形如 "3 "
console.dump("结果:",arr);
//4、@2可以是包含模式串的表,键名可为任意名称,键值为模式串,返回相同结构的表,每个键对应的值会更新为表中模式串的匹配结果
console.log('\n4、@2可以是包含模式串的表,键名可为任意名称,键值为模式串,返回相同结构的表,每个键对应的值会更新为表中模式串的匹配结果')
var arr = string.map("123 456 489",{a="4\d+";b="\d\s"}) //表的模式串间不存在关系,各自用模式串在@1中去匹配
console.dump("结果:",arr);
//5、@2模式串中可以用括号指定匹配分组,这将直接返回分组匹配到的字符串并将其push到返回的结果数组中
console.log('\n5、@2模式串中可以用括号指定匹配分组,这将直接返回分组匹配到的字符串并将其push到返回的结果数组中')
var arr = string.map("123 a456b c789d","a(\d+)b")
console.dump("结果:",arr);
//6、@2模式串中的匹配分组还可以设为多个,这将会同时将多个匹配结果做为数组push到结果数组中最终形成一个二维数组结果
console.log('\n6、@2模式串中的匹配分组还可以设为多个,这将会同时将多个匹配结果做为数组push到结果数组中最终形成一个二维数组结果')
var arr = string.map("123 a456b c789d","a(\d+)b\sc(\d+)d")
console.dump("结果:",arr);
//7、可以自定义@3映射函数,这会将@2模式串匹配到的结果做为参数传到@3映射函数,@3的返回值将push到返回数组中
console.log('\n7、可以自定义@3映射函数,这会将@2模式串匹配到的结果做为参数传到@3映射函数,@3的返回值将push到返回数组中')
var func = function(...){
 console.log("匹配结果传过来了:",...)
 return ...+"我是映射函数返回的"; 
}
var arr = string.map("123 456 789","\d+",func)
console.dump("结果:",arr);
//8、单独省略@3映射函数时,内部会设置一个函数代替@3其作用为直接返回匹配结果。最后匹配结果会 push 数组中最后返回这个数组
console.log('\n8、单独省略@3映射函数时,内部会设置一个函数代替@3其作用为直接返回匹配结果。最后匹配结果会 push 数组中最后返回这个数组')
var arr = string.map("123 456 789","\d+")
console.dump("结果:",arr);
console.pause(true);


登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前在学aardio+halcon机器视觉.
Htmlayout界面在线学习文档
Sciter中文在线文档Sciter在线学习文档
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
aardio在线手册Aardio在线手册
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...