0 0

一个正则表达式的问题10

有四个字符串:
  • 1.kzbfldsf
  • 2.kzqldsf
  • 3.kybfldsf
  • 4.kyqldsf


写一个正则表达式全部可以匹配
其中k,ldsf是固定的,
第二个字母可能是z、y
第三个字符可能是bf、q

我写的表达式:
k[z|y][q|bf]ldsf 

这样只能匹配第2,4这两个,
如果写成这样
k[z|y][q|b]f?ldsf

则4个都可以匹配。

问题是,不知道为什么第一个表达式不能全匹配?
2013年9月13日 11:30

2个答案 按时间排序 按投票排序

0 0

采纳的答案

你没有理解[]的用法,你的第一个写法实际上就是
k[zy][qbf]ldsf
第二个写法实际就是
k[zy][qb]f?ldsf
第二个写法也是有问题的
比如kzyqfldsf也会被匹配上,这个正确吗?

应该用括号表达式来匹配字符串而不是一个字(如果只能匹配你写的这4种的话)
k[zy](bf|q)ldsf

[zy] 第二个字母可能是z、y
(bf|q) 第三个字符(或者串)可能是bf、q

2013年9月13日 11:42
0 0

楼上的解答有些问题
[z|y]相当于z、y和竖线(|)

2013年9月16日 11:43

相关推荐

Global site tag (gtag.js) - Google Analytics