如何使用正则expression式获取特定字符后的所有字符,例如逗号(“,”)

需要一个正则expression式来获取所有的字符, (不包括它)从一个variables。 这个variables可以包含例如

 'SELECT___100E___7',24 'SELECT___100E___7',1 'SELECT___100E___7',286 'SELECT___100E___7',5147 

注意:在这个variables后面可以有任意长度的字符。

对正则expression式的解释将是对新手:)添加帮助

编辑:一个JavaScript的答案会一样好

你不需要正则expression式来做到这一点。 这是一个例子:

 var str = "'SELECT___100E___7',24"; var afterComma = str.substr(str.indexOf(",") + 1); // Contains 24 // 

简短的回答

或者:

  • ,[\s\S]*$,.*$匹配第一个逗号后面的所有内容(请参阅使用说明); 要么

  • [^,]*$匹配最后一个逗号后的所有内容(这可能是你想要的)。

您可以在JavaScript中使用/[^,]*/.exec(s)[0] ,其中s是原始string。 如果您想使用多行模式并以这种方式查找所有匹配项,可以使用s.match(/[^,]*/mg)来获取一个数组(如果在variables中有多个已发布的示例行单独的行)。

说明

  • [\s\S]是一个匹配空白字符和非空白字符的字符类(即所有这些字符)。 这不同于. 因为它匹配换行符。
  • `[^,]是一个否定字符类,匹配除逗号之外的所有字符。
  • *表示之前的项目可以重复0次或更多次。
  • $是要求匹配的结尾位于string结尾的锚(或者如果使用/ m多行标记,则结束行)。

对于第一个匹配,第一个正则expression式find第一个逗号,然后匹配所有字符,直到行尾[\s\S]*$ ,包括逗号。

第二个正则expression式在行结束之前匹配尽可能多的非逗号字符。 因此,整个比赛将在最后一个逗号之后。

 [^,]*$ 

可能做。 (匹配最后一个逗号后的所有内容)。

说明: [^,]匹配除了,之外的每个字符。 *表示正则expression式匹配[^,]任意重复次数。 $符号匹配行的末尾。

这匹配任何长度的单词:

 var phrase = "an important number comes after this: 123456"; var word = "this: "; var number = phrase.substr(phrase.indexOf(word) + word.length); // number = 123456 
 .+,(.+) 

说明:

 .+, 

会search逗号前的所有内容,包括逗号。

 (.+) 

将search逗号后的所有内容,并根据您的正则expression式环境,

 \1 

是您需要的第一个圆括号捕捉组的参考,在本例中,是逗号后面的所有内容。

您可以尝试以下方法:

 new_string = your_string.split(',').pop().trim(); 

这是如何工作的:

  • split(',')创build一个由your_string的不同部分组成的your_string

(例如,如果string是"'SELECT___100E___7',24" ,数组将是["'SELECT___100E___7'", "24"] "'SELECT___100E___7',24" ["'SELECT___100E___7'", "24"] )。

  • pop()获取数组的最后一个元素

(在这个例子中,它将是"24" )。

这已经足够了,但是如果可能有一些空间的话(不是在OP的情况下,而是在一般情况下),我们可以有:

  • trim()将删除string周围的空格(如果它是" 24 " ,它将变成简单的"24"

这是一个简单的解决scheme,肯定比正则expression式更容易。

这应该工作

 preg_match_all('@.*\,(.*)@', '{{your data}}', $arr, PREG_PATTERN_ORDER); 

你可以在这里testing它: http : //www.spaweditor.com/scripts/regex/index.php

正则expression式: .*\,(.*)

同样的RegExtesting在这里为JavaScript: http : //www.regular-expressions.info/javascriptexample.html

另一个想法是做myVar.split(',')[1];

对于简单的情况,不使用正则expression式是一个好主意…

也许你可以试试这个

 var str = "'SELECT___100E___7',24"; var res = str.split(',').pop();