如何使用正则表达式获取特定字符后的所有字符,例如逗号(",")

use*_*034 46 javascript regex

需要一个正则表达式来,从变量中获取(不包括它)之后的所有字符.例如,此变量可以包含

'SELECT___100E___7',24
'SELECT___100E___7',1
'SELECT___100E___7',286
'SELECT___100E___7',5147
Run Code Online (Sandbox Code Playgroud)

注意:,此变量后面可以有任意长度的字符.

正则表达式的解释将为新手增加帮助:)

编辑:一个ja​​vascript答案也一样好

HoL*_*ieR 104

你不需要正则表达式来做这件事.这是一个例子:

var str = "'SELECT___100E___7',24";
var afterComma = str.substr(str.indexOf(",") + 1); // Contains 24 //
Run Code Online (Sandbox Code Playgroud)


Ple*_*and 36

简短的回答

或者:

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

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

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

说明

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

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

第二个正则表达式在行尾之前匹配尽可能多的非逗号字符.因此,整个匹配将在最后一个逗号之后.


Sve*_*ach 16

[^,]*$
Run Code Online (Sandbox Code Playgroud)

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

说明:[^,]匹配除了的所有字符,.的*表示正则表达式的任何数量的重复匹配[^,].该$标志线的末端匹配.

  • 这并不匹配“,”之后的所有内容,而是匹配除“,”之外的所有内容。如果没有`,`怎么办? (2认同)

dar*_*ioo 5

.+,(.+)
Run Code Online (Sandbox Code Playgroud)

解释:

.+,
Run Code Online (Sandbox Code Playgroud)

将搜索逗号之前的所有内容,包括逗号。

(.+) 
Run Code Online (Sandbox Code Playgroud)

将搜索逗号后的所有内容,具体取决于您的正则表达式环境,

\1
Run Code Online (Sandbox Code Playgroud)

是您需要的第一个括号捕获组的引用,在本例中,逗号之后的所有内容。


Pat*_*ova 5

这匹配任何长度的单词:

var phrase = "an important number comes after this: 123456";
var word = "this: ";
var number = phrase.substr(phrase.indexOf(word) + word.length);
// number = 123456
Run Code Online (Sandbox Code Playgroud)