正则表达式以捕获最后一个空格字符和字符串结尾之间的字符

4

我正在尝试确定最后一个空格字符和字符串结尾之间的字符。

示例

Input:   "this and that"

Output: "that"

我尝试了下面的正则表达式,但它不起作用!
var regex = /[\s]$/
4个回答

7

可以不使用正则表达式

var result = string.substring(string.lastIndexOf(" ")+1);

使用正则表达式

result = string.match(/\s[a-z]+$/i)[0].trim();

2
假设字符串中确实存在空格。 - mplungjan
2
如果lastIndexOf没有返回-1,则会加上1,因此子字符串从0开始,并返回整个字符串。所以正好符合要求。 - clentfort
1
对于正则表达式,我会使用 /\S+$/,但是子字符串等效方法显然更好。 - cmbuckley
@cbuckley 是的,你的正则表达式更好。 - Anoop

1

我建议您使用简单的正则表达式模式

\S+$

Javascript 测试代码:

document.writeln("this and that".match(/\S+$/));

输出:

that 

在这里测试它。


0
你可以只删除最后一个空格之前的所有内容。
s.replace(/.* /, '')

或者,匹配任何空白字符...

s.replace(/.*\s/, '')

-1

你的示例仅匹配字符串末尾的一个空格字符。请使用

/\s\S+$/

匹配任何数字。


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