需要正则表达式从变量中获取,
(不包括它)之后的所有字符。该变量可以包含例如
'SELECT___100E___7',24
'SELECT___100E___7',1
'SELECT___100E___7',286
'SELECT___100E___7',5147
注意:此变量中的,
后面可以有任意长度的字符。
对正则表达式的解释对新手来说是一个额外的帮助:)
编辑:javascript答案也一样好
答案 0 :(得分:102)
您不需要正则表达式来执行此操作。这是一个例子:
var str = "'SELECT___100E___7',24";
var afterComma = str.substr(str.indexOf(",") + 1); // Contains 24 //
答案 1 :(得分:32)
或者:
,[\s\S]*$
或,.*$
以匹配第一个逗号后的所有内容(请参阅说明使用哪个逗号);或
[^,]*$
匹配最后一个逗号之后的所有内容(可能是您想要的)。
您可以在JavaScript中使用/[^,]*/.exec(s)[0]
,其中 s 是原始字符串。如果您想使用多行模式并以这种方式查找所有匹配项,则可以使用s.match(/[^,]*/mg)
来获取数组(如果变量中的多个已发布的示例行在不同的行上)。
[\s\S]
是一个匹配空白和非空白字符(即所有字符)的字符类。这与.
的不同之处在于它与换行符匹配。[^,]
是一个否定的字符类,它匹配除逗号外的所有内容。*
表示上一项可以重复0次或更多次。$
是要求匹配结束位于字符串末尾的锚点(如果使用/ m多行标记,则为行尾)。对于第一场比赛,第一个正则表达式会找到第一个逗号,
,然后匹配所有字符,直到行[\s\S]*$
的结尾,包括逗号。
第二个正则表达式在行尾之前匹配尽可能多的非逗号字符。因此,整个匹配将在最后一个逗号之后。
答案 2 :(得分:16)
[^,]*$
可能会这样做。 (匹配最后一个逗号后的所有内容)。
说明:[^,]
匹配除,
以外的所有字符。 *
表示正则表达式匹配[^,]
的任意重复次数。 $
符号与该行的结尾匹配。
答案 3 :(得分:4)
.+,(.+)
说明:
.+,
将搜索逗号之前的所有内容,包括逗号。
(.+)
将搜索逗号后面的所有内容,具体取决于你的正则表达式环境,
\1
是您需要的第一个括号捕获组的引用,在此示例中是逗号后的所有内容。
答案 4 :(得分:3)
这匹配任意长度的单词:
#include <iostream>
enum MyEnumWith2Items { Item1, Item2 };
enum MyEnumWith3Items { Item3, Item4, Item5 };
template <typename E>
struct myStruct
{
template <E I>
int & item ()
{ static int value = 0; return value; }
};
int main ()
{
myStruct<MyEnumWith2Items> e2;
myStruct<MyEnumWith3Items> e3;
e2.item<Item1>() = 1;
e2.item<Item2>() = 2;
e3.item<Item3>() = 3;
e3.item<Item4>() = 4;
e3.item<Item5>() = 5;
std::cout << "e2: " << e2.item<Item1>() << ", " << e2.item<Item2>()
<< std::endl; // print e2: 1, 2
std::cout << "e3: " << e3.item<Item3>() << ", " << e3.item<Item4>()
<< ", " << e3.item<Item5>() << std::endl; // print e3: 3, 4, 5
}
答案 5 :(得分:2)
您可以尝试以下操作:
new_string = your_string.split(',').pop().trim();
这是它的工作原理:
split(',')
创建一个由your_string
(例如,如果字符串为"'SELECT___100E___7',24"
,则数组为["'SELECT___100E___7'", "24"]
)。
pop()
获取数组的最后一个元素(在示例中,它将是"24"
)。
这已经足够了,但是如果可能存在一些空格(不是OP的情况,而是一般情况下更多),我们可以:
trim()
会删除字符串周围的空格(如果它是" 24 "
,则会变为"24"
)这是一个简单的解决方案,肯定比正则表达式更容易。
答案 6 :(得分:1)
另一个想法是myVar.split(',')[1];
对于简单的情况,不使用正则表达式是个好主意......
答案 7 :(得分:1)
也许你可以试试这个
var str = "'SELECT___100E___7',24";
var res = str.split(',').pop();
答案 8 :(得分:0)
这应该有效
preg_match_all('@.*\,(.*)@', '{{your data}}', $arr, PREG_PATTERN_ORDER);
您可以在此处进行测试:http://www.spaweditor.com/scripts/regex/index.php
RegEx:.*\,(.*)
此处针对JavaScript的RegEx测试: http://www.regular-expressions.info/javascriptexample.html