复杂的正则表达式捕获 - Javascript

时间:2015-07-04 17:04:17

标签: javascript regex

我一直试图抓住下面的部分

a1A ^(?\..*+) and a1A ^(?\..*+) g:a1A ^(?\..*+)

然而,我无法为我想要达到的目标创造100%正常工作的正则表达式。

正则表达式必须捕获任何东西后面的字母后面跟冒号也是冒号之前的字母,然后它必须在第一个匹配的字母后跟冒号以及结肠前的字母直到空格后捕获。例如对于以下这一行:

x:a1A ^(?\..*+) z:a1A ^(?\..*+) g:a1A ^(?\..*+)

--> captured value must be 'x', 'a1A ^(?\..*+)', 'z', and 'a1A ^(?\..*+) g:a1A ^(?\..*+)'

另一个例子

x23:a1A ^(?\..*+) z:a1A ^(?\..*+) g:a1A ^(?\..*+)

--> captured value must be 'x23', 'a1A ^(?\..*+)', 'z' and 'a1A ^(?\..*+) g:a1A ^(?\..*+)'

然后如果没有字符串以任何字母开头并且后跟冒号,那么它必须捕获任何东西,直到空格后跟一个字母或一个字母和一个冒号。 e.g。

a1A ^(?\..*+) s:a1A ^(?\..*+)

--> captured value must be 'a1A ^(?\..*+)', 's' and 'a1A ^(?\..*+)

1 个答案:

答案 0 :(得分:0)

我提出的正则表达式是<input type="checkbox" class="checkbox-row" ng-model="checked" ng-click="selected()" /> <button class="btn btn-success" ng-click="send()" ng-disabled="!checked"> </button>

?:([^: ]+):)?([^ ]+ [^ ]+)(?: |$)

这是我测试出来的小提琴:http://jsfiddle.net/9nbsu84v/