EDA365电子论坛网

标题: rexMatchp和rexMatchList [打印本页]

作者: 式试1813    时间: 2025-4-8 16:46
标题: rexMatchp和rexMatchList
/***********
[a-z] //匹配所有的小写字母
[A-Z] //匹配所有的大写字母
[a-zA-Z] //匹配所有的字母
[0-9] //匹配所有的数字
[0-9\.\-] //匹配所有的数字,句号和减号
[ \f\r\t\n] //匹配所有的白字符
^表示字符串的开头,但它还有另外一个含义。当在一组方括号里使用^是,它表示"非"或"排除"的意思,常常用来剔除某个字符。
************/
rexMatchList("[a-z][0-9]" '("01a" x02 "003" aa01 "abc"))     => (x02 aa01);一个小写字母一个数字,且小写字母要在数字前
rexMatchList("[a-z][0-9]*" '("01a" x02 "003" aa01 "abc" ))   => ("01a" x02 aa01 "abc");元素包含多个小写字母或多个数字或数字和字母随意排列
rexMatchList("[^a-z][a-z]" '("01a" x02 "003" aa01 "abc"))    => ("01a" x02 "003" aa01)
;[^a-z]表示字符不是小写字母,"[^a-z][0-9]"表示一个是非小写字母和一个数字,且^[a-z]在[0-9]前
rexMatchList("^[a-z][0-9]*" '("01a" x02 "003" aa01 "abc" ))  => (x02 aa01 "abc")
;^[a-z]表示字符串开头是小写字母,"^[a-z][0-9]*"表示首位是小写字母,其他位是多个字母或数字
rexMatchList("^[^a-z][0-9]*" '("01a" x02 "003" aa01 "abc" "a0a1aaa")) => ("01a" "003")
;[^a-z]表示字符不是小写字母,^[^a-z]表示字符串开头是[^a-z]即非小写数字,"^[^a-z][0-9]*"表示需要非小数字母开头,其他位是包含多个非小写字母或多个数字或数字和非小写字母随意排列


/**************
[a-zA-Z]    匹配单个大写或小写字母。
[a-zA-Z]*   匹配一行中的零个或多个大写或小写字母。
^[a-zA-Z]+$ 匹配以一个或多个大写或小写字母开头并以其结尾的字符串。这意味着,字符串中只有大写或小写字母。
**************/

rexMatchp("[0-9]*[.][0-9][0-9]*" "100.001") => t  ;小数点前是[0-9]*即多个数字,小数点后是多个数
rexMatchp("[0-9]*[.][0-9]*" "100.001") => t
rexMatchp("[0-9]*[.][0-9]+" ".001") => t
rexMatchp("[0-9]*[.][0-9]+$" ".001") => t
rexMatchp("[0-9]*[.][0-9]+" ".") => nil
rexMatchp("[0-9]*[.][0-9][0-9]*" "10." => nil

;见过一个代码如下,分析一下吧
rexMatchp("^[ A-Za-z]*[ ]+[A-Za-z]*[ ]+[-?0-9.]*[ *(]+[-?0-9.]*[ ]+[-?0-9.]*[) to (]+[-?0-9.]*[ ]+[-?0-9.]*[)].$" next_line)



作者: Sleep_xz    时间: 2025-4-8 18:34
这个看不懂。请大神指点
作者: 雞翅加辣    时间: 2025-4-9 16:25
Sleep_xz 发表于 2025-4-8 18:34
这个看不懂。请大神指点

你可以上網查一下。什麼叫做 正規表示法 。
然後才知道那串可怕的東西是什麼!

作者: 雞翅加辣    时间: 2025-4-9 16:29
我自己習慣會先用 rexCompile("^[-_a-zA-Z0-9*]*$")  再用if(rexExecute ("Today_0409_is_good_day")




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2