搜索正则表达式从零到n和零到一

时间:2017-02-16 10:27:05

标签: regex

我想解析

的字符串
  • 一个char的零到多次出现
  • 其次是零或一次出现另一个char

有效示例(x =除A或B之外的任何其他字符,此时不进行数字过滤)

xAxBx
xAxAxBx
x
xB
xBx

无效的例子

xBxAx
xAxBxAx
xAxBxBx
Ax
A

"东西"其次是"包含零个或多个" A" s"其次是"包含零或一个" B""。

背景是一些数字格式的自动检测(零或一些组分隔符后跟零或一个小数分隔符,我知道我必须为A或B转义点或空格)

我在http://regexr.com/玩耍,但到目前为止我还没有...

更新(2)

尝试更好/更短地描述我的模式:

  • A或B以外的东西
  • 重复:A后面跟A或B
  • 以外的东西
  • 没有或一个B后跟除了A或什么之外的东西

因此字符串可能以B结尾但不以A或B开头,A之后不应有A或B.

更新(3)

使用模式

^[^AB]+(A[^AB]*)*(B[^AB]*)?$
  • 字符串可能以A结尾(如xxxAxxAAAxxxAxxxxA)
  • 多个A可以站在一起(也像xxxAxxAAAxxxAxxxxA一样)

该模式适用于

  • 开头没有A或B
  • 在As
  • 之后只有一个B.

(在http://regexr.com/测试)

1 个答案:

答案 0 :(得分:2)

//"^[^AB]+(A[^AB]*)*(B[^AB]*)*$"
//"^[^AB]+(A[^AB]*)*(B[^AB]*)?$"
  "^[^AB]+(A[^AB]+)*(B[^AB]*)?$"