0

我有以下字符串:

"What version is installed on production server?"
"What appserver version is installed on production server?"
"What system version is installed on production server?"
"What os version is installed on production server?"

以及以下正则表达式:

 /(?:what|which).*(appserver|system)?.*version.*\son\s(\w*).*/i

我希望得到appserverorsystemundefined作为第一个匹配组,但我总是得到undefined.

如果我?从第一个匹配组中删除,我得到appserversystem但第一个和最后一个字符串不再匹配。

怎么了?

有关测试台,请参见http://jsfiddle.net/ZVQTb/5/

4

1 回答 1

2

问题是您正在尝试查找“appserver”或“system”之前的任何内容,但是当它不存在时,在“version”之前没有另一个组。

/(?:what|which).+?(appserver|system)?.*version.*\son\s(\w*).*/i

小提琴

注意:改为+根据+?埃文敏锐的眼睛。

于 2013-10-29T03:21:09.947 回答