如何使用正则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();