正则表达式最后一个单词从字符串末尾开始

标签 regex

我有以下正则表达式 \b(\w+)$ 可用于查找字符串中的最后一个单词。然而,字符串越长,所需的步骤就越多。

如何让它从行尾开始搜索?

最佳答案

回答

简介

使用您指定的正则表达式\b(\w+)$,您将获得越来越多的步骤,具体取决于字符串的长度(它将匹配每个\b,然后每个 \b\w,然后每个 \b\w\w,直到找到 \b\w$ 的正确匹配),但它仍然必须对字符串中的每个项目进行检查,直到满意为止。

要显式使用正则表达式获取字符串的最后一项,可以执行以下操作:翻转字符串,然后使用 ^ anchor 。这将导致正则表达式在第一次匹配时立即满足并停止处理。

您可以搜索如何用多种语言翻转字符串。一些语言示例如下:

代码

You can see the regex in use here

您的编程语言

// flip string code goes here 

正则表达式

^(\w+)

您的编程语言

// flip regex capture code goes here

输入

This is my string

输出

通过翻转您的语言中的字符串转换为以下内容

gnirts ym si sihT

正则表达式返回以下结果

gnirts

将字符串翻转回您的语言

string

说明

由于使用了 anchor ^,它将从字符串的开头进行检查(按照通常的正则表达式行为)。如果满足,它将返回匹配项,否则,它将不返回任何匹配项。在 regex101 中进行的测试(通过代码部分中的链接提供)表明,只需 6 个步骤即可确保进行匹配。它还需要 3 个步骤来确保匹配。这些值不会随着字符串长度的变化而改变。

关于正则表达式最后一个单词从字符串末尾开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46225397/

相关文章:

Python 正则表达式 : (\w+) not picking up up numbers with 2 digits or less

Ruby - 根据允许的字符验证用户输入

regex - 正则表达式的含义 if ($_ =~/-\n/)

python - 有没有更明智的方式来编写这个正则表达式?

javascript - 读取文件javascript时的正则表达式

javascript - 正则表达式:匹配,但不包括匹配的部分

regex - emacs org 模式,只搜索标题

regex - 正则表达式 - 不是任何其他单词

regex - 谷歌分析 : filter by Page and Service Provider

php - 这个正则表达式我做错了什么?