新手问题 正则表达式

chenyanlin_1983 · 2017年05月24日 · 最后由 chenyanlin_1983 回复于 2017年05月25日 · 1272 次阅读

书上写得不太清楚,麻烦各位大神看看,关于输出结果的解释是否正确

r=/^ti+n$/
p r.match("tianen").to_s  ===》""                +号前面字符未在后面出现,+号就为空字符,后面还有其他字符,所以输出为"" 
p r.match("tiin").to_s       ===》"tiin"            +号前面字符在后面出现一次,所以输出为"tiin" 
p r.match("itiin").to_s      ===》""                 +号前面还有其他字符,所以输出为"" 
p"----------"
r=/^ti*n$/
p r.match("tianen").to_s ===》""                   *号前字符未在后面出现,*号就为空字符,后面还有其他字符,所以输出""
p r.match("tiin").to_s      ===》"tiin"               *号前字符在后面出现一次,所以输出为"tiin" 
p r.match("itiiiin").to_s    ===》""                   *号前面还有其他字符,所以输出为"" 
p"----------"
r=/^ti*.*n$/
p r.match("tianen").to_s===》"tianen"           *号前字符未在后面出现,*号就为空字符,.匹配任意多个字符,所以输出"tianen" 
p r.match("tiin").to_s     ===》"tiin"                 *号前字符未在后面出现,*号就为空字符,.匹配字符i,所以输出"tiin"  
p r.match("itiiiin").to_s  ===》""                      *号前面还有其他字符,所以输出为"" 
p"----------"
r=/^.*ti*.*n$/
p r.match("tianen").to_s===》"tianen"            .*都是空字符,其余同上
p r.match("tiin").to_s     ===》"tiin"                  .*都是空字符,其余同上
p r.match("itiiiin").to_s   ===》"itiiiin"                .匹配i,*号为空字符,其余同上

楼主能麻烦先看下 markdown 的基本用法么...这个排版说实话真的没有动力看下去...

hging 回复

现在排版对了不

hging 回复

能否帮我看看问题呢

你都没描述好问题,谁人会给你看?

prothro 回复

我更改了下问题描述,麻烦帮我看看呢

/^ti+n$/   匹配以 ' t ' 打头,后面跟着一个或多个 ' i ', 并且以 ' n ' 结尾。(比如 tin, tiin)
/^ti*n$/   匹配以 ' t ' 打头,后面跟着零个或多个 ' i ', 并且以 ' n ' 结尾。(比如 tn, tin, tiin)
/^ti*.*n$/ 匹配以 ' t ' 打头,后面跟着零个或多个 ' i ', 后面再跟着零个或多个任意字符, 并且以 ' n ' 结尾。(比如 tn, tin, tixn, tixyn)
prothro 回复

明白了,谢谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号