1

我正在尝试创建一个注册表表达式,它将检测字符串中的以下语法:

OPEN-BRACKET > ANYTHING > PLUS-OR-MINUS > CLOSE-BRACKET
  • 示例字符串:NB###-#####-#####-### [#+]

请注意,表达式可以在字符串中的任何位置并且出现多次。

我已经尝试过[(.+)(\+|-)],这似乎不像我想象的那样在 php 中起作用,但在rubular.com中确实有效

返回字符串** 的表达式是什么,无论它是加号还是减号

4

3 回答 3

1

也许.+由于默认的贪婪而消耗了所有东西?如果使用 . 锚定字符串会发生什么^\[(.+)(\+|-)\]$

如果由于多次出现而无法锚定字符串,请尝试使用前瞻功能。如果“任何东西”真的可以是任何东西,你如何区分任何东西和加+] 号或减号>右括号?

如果任何东西都不允许加号或减号,请选择\[([^+-]+)(\+|-)\].

于 2012-08-11T15:50:55.087 回答
1

我建议这种模式:

"(\[(.+)(\+|-)\])"

括号捕获整个组,\转义[]字符,以及+字符,否则(当未转义时)在正则表达式中具有特殊含义。

于 2012-08-11T15:51:26.117 回答
0

谢谢您的帮助。/\[([\$|a-zA-Z]+)(\+|-)\]/我设法按照我的意图找出作品。

于 2012-08-12T00:22:30.640 回答