1

我正在尝试使用正则表达式获取字符串的一部分

这是我正在测试的字符串

class1 container _box _box_CEC493

字符串是应用于元素的一系列类。

我想得到的是CEC493哪些变化,因为正则表达式将应用于一堆不同的元素(因此字符串就像上面的那个)

我现在使用的正则表达式是

/\s_box_([0-9a-zA-Z]+)/

返回

_box_CEC493, CEC493

我怎样才能修改它以获得第二个值(CEC493)?

谢谢

4

3 回答 3

2

您可能只是拆分字符串:

var str = "class1 container _box _box_CEC493";
var match = str.split('_').pop();
alert(match);

演示

于 2013-07-17T15:11:01.043 回答
0

[更新]

而不是选择所有字符,选择直到不需要的字符,并且由于您是从许多类中选择的,因此您可能只有_box_..该类而前面没有空格,所以不要在您的开头使用空格正则表达式选择器。

str.match(/_box_([^\s]*)/)[1]

jsfiddle

于 2013-07-17T15:51:34.343 回答
0

正则表达式返回的标准方式是这样的:

[0]:整体结果

[1]:第一个括号捕获组

ETC

因此,人们访问这些的标准方式是使用result[1]. 这是否会导致您的情况出现任何问题?

于 2013-07-17T15:14:04.153 回答