正则表达式匹配最后一个字符

4

我有以下几行代码:

data:text/javascript;base64,Ly8gSGVyZdsdsd:5
data:text/javascript;base64,Ly8gSGVyZdsdsd:2
data:text/javascript;base64,Ly8gSGVyZdsdsd:1

我想使用正则表达式选择上面的第二行文本,匹配以2结尾的字符串?我卡住了,以下是我的代码:

^.*$

2
为什么只有第二行?标准是什么? - Washington Guedes
1
也许:result = string.match(/^.*2$/m)[0]; - Washington Guedes
@user6188402 数据:文本/ JavaScript;基础64,Ly8gSGVyZdsdsd:2 - Alien Xu
你的问题不够明确。为什么你想选择第二行?因为它以2结尾吗?已经有很多人提供了解决方案。你不能在正则表达式中选择行号。正则表达式解析字符串、字符... \n只是一个字符... - Alex
2个回答

5
你可以使用一个非常简单的模式。
string.match(/.*2$/m)
=> ["data:text/javascript;base64,Ly8gSGVyZdsdsd:2"]

m代表多行匹配。如果没有它,$将只匹配字符串的末尾,而使用它将匹配每行的末尾。


2

.$ 简短解释。 . 表示任何字符,或每个非空白字符,并且它应该是最后一个字符。这是因为 $ 意味着它应该是最后一件事。

现在只需在您喜欢的语言中实现它,例如js:

var string = "hello world!"; Var match = string.match(/.$/);

(不确定匹配现在是否具有“!”的值,还是仅具有布尔值,js不是我的强项)


1
这仅适用于您需要任何行的最后一个字符,而不仅仅是以“2”结尾的字符。 - Morten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接