【发布时间】:2017-02-16 10:27:05
【问题描述】:
我想解析一个字符串
- 一个字符出现零到多次
- 后跟零次或一次出现另一个字符
有效示例(x = 除 A 或 B 之外的任何其他字符,此时没有数字过滤)
xAxBx
xAxAxBx
x
xB
xBx
无效示例
xBxAx
xAxBxAx
xAxBxBx
Ax
A
“某物”后跟“包含零个或多个“A”的事物”后跟“包含零个或一个“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/ 测试)
【问题讨论】:
-
那么,在 regexr.com 上最接近的尝试是什么?
-
你想要一个真/假结果还是提取那些字符?你确定你需要/想要正则表达式吗?
-
只是真/假,这是在深入研究字符串之前的快速预检查(支持较旧的内部 api)。当前尝试是“([^AB].*[A*])”,表示“后跟零个或多个 As”
-
xA和xAx有效吗? -
@Niitaku 是的,确实如此
标签: regex