Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12152|回复: 8

了解正则表达式的来看看,rexCompile????

[复制链接]
发表于 2013-6-20 22:31:35 | 显示全部楼层 |阅读模式
skill语法中的正则表达式一章节描述的
rexCompile("\\(^[a-z]+\\)\\.\\1")
谁能讲讲什么样的字符串能匹配上式?
发表于 2013-6-21 22:24:49 | 显示全部楼层
{:soso__3088340484270736325_1:}不了解这个。。。
 楼主| 发表于 2013-6-21 23:16:17 | 显示全部楼层
vivienluo 发表于 2013-6-21 22:24
不了解这个。。。

正则表达式很用法复杂啊!!
发表于 2013-6-25 09:34:14 | 显示全部楼层
本帖最后由 XYX365 于 2013-6-25 10:10 编辑

語法             含義
  c          匹配任意非特殊字元
  .          匹配任意字元
\          用在特殊字元前面代表特殊字元本身,用在 <, >, (, ), and 1,...,9, 的含義在下面描述
[c...]      一對方括弧中包含一些字元將匹配括弧中的任意一個字元,如果第一個字元是 ^ 則表示不匹配括弧中的所有字元,[a-z]表示匹配a到z之間的任一字元,"-”表示範圍。
  *          用在一個以上描述的字元或pattern後表示匹配該字元或pattern0次或多次。
  +          類似*,區別在於匹配至少一次
\(..\)      如果包含在這個符號中的字串匹配上了,被匹配的字元可以被提取出來(最多支援9中匹配)
\n          和上一個符號對應,反斜杠後跟一個數字將可以提前到上一個符合保留的字串
\<...\>     這個符號表示完全匹配一個字串的開始和結尾
rs          2個正則運算式的組合將盡可能多的匹配r並匹配一個s
^, $        ^表示字串的開始, $表示字串的結尾

例如:
分解一個字串 tString = "AOC168"
用正则表达式匹配,比如
rexCompile("\\([A-Z]*\\)\\([0-9]+\\)")
rexExecute(tString)
str = rexSubstitute("\\1")就可以获得字符
str = "AOC"
num= rexSubstitute("\\2")可以获得数字
num = "168"
 楼主| 发表于 2013-6-25 13:51:54 | 显示全部楼层
XYX365 发表于 2013-6-25 09:34
語法             含義
  c          匹配任意非特殊字元
  .          匹配任意字元

谢谢详细的中文语法解释,最近也在用。
我提的上式至今没有找到答案,也可能就没有正解,估计也不会用到。

能否解答一下\<...\>用法呢,rexCompile("\\<chuankay\\>")和rexCompile("chuankay")有何不同?rs应该如何使用呢?
发表于 2013-6-26 15:02:39 | 显示全部楼层
chuankay 发表于 2013-6-25 13:51
谢谢详细的中文语法解释,最近也在用。
我提的上式至今没有找到答案,也可能就没有正解,估计也不会用到 ...

你看看下列的結果tReturn0 and tReturn1的差異.
tString = "chuankaychuankay_chuankay chuankay"
rexCompile("chuankay")
tReturn0 = rexReplace(tString "=" 0)

rexCompile("\\<chuankay\\>")
tReturn1 = rexReplace(tString "=" 0)


rs我沒有使用過,要再研究一下

 楼主| 发表于 2013-6-27 00:22:02 | 显示全部楼层
XYX365 发表于 2013-6-26 15:02
你看看下列的結果tReturn0 and tReturn1的差異.
tString = "chuankaychuankay_chuankay chuankay"
rexC ...

hi XYX365
谢谢耐心解答,\< \>的用法我明白了!我在google了一番,也没有找到rs的想过案例,最多就是被认为是陈述性的功能表达式,如:它在编译含有通配符的模板字符情况下,可匹配最长的字符串,
摘自互联网案例:
rexCompile(".*k")
rexExecute("chuakaychuakaychuakaychuakay")
rexSubstitute("\\0")
=> "chuakaychuakaychuakaychuak"
不知是不是这回事!!!!!表示怀疑!!!!
发表于 2017-10-10 12:28:12 | 显示全部楼层
XYX365 发表于 2013-6-25 09:34
語法             含義
  c          匹配任意非特殊字元
  .          匹配任意字元

\\是啥
发表于 2017-10-10 12:36:41 | 显示全部楼层
XYX365 发表于 2013-6-25 09:34
語法             含義
  c          匹配任意非特殊字元
  .          匹配任意字元

("\\([A-Z]*\\)\\([0-9]+\\)")相当是( “  \(...*\) \(...\)     ” )
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号 )

GMT+8, 2024-4-25 21:51 , Processed in 0.144405 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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