javascript - 如何匹配行首或行尾的正则表达式?

标签 javascript regex

我正在尝试创建一个匹配 !next 的 JS 正则表达式,无论是在行的开头还是

目前我正在使用有效的 /(^!next|!next$)/i 。然而,这显然读起来有点难看而且不干,所以我希望改进。

我最接近的是这个:

/(?=!next)[^$]/i

但这实际上只匹配所有内容(现在我突然想到,我记错了 ^ 在字符类中的工作方式,所以这个解决方案无论如何都是垃圾)。

我已经搜索了网络和 SO,但我完全被难住了。

最佳答案

这是一个有趣的例子,使用正则表达式条件:

/(^)?!next(?(1)|$)/gm

Demo on Regex101

它的工作原理是捕获行首 anchor ,如果不存在,则匹配行尾 anchor 。

不过,就我个人而言,我仍然赞成您的解决方案而不是我的,因为对于那些对正则表达式没有非常透彻了解的人来说,它更具可读性(并且更便携)。

为了增加乐趣,这是另一个版本(比您最初的版本更丑陋):

/!next(?:(?<=^.{5})|(?=$))/gm

Demo on Regex101

不过,我仍然建议坚持使用经典交替。

最后,一个在 JS 中工作的(不,真的):

/(?:^|(?=.{5}$))!next/gm

Demo on Regex101

关于javascript - 如何匹配行首或行尾的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39928952/

相关文章:

php - 这个 perl 正则表达式的 PHP 等价物是什么

javascript - 需要 Javascript URL 正则表达式

C# 正则表达式捕获括号

javascript - pasteHTML 删除标记

javascript - 将 textarea 列的编号设置为等于容器/表格的宽度

javascript - Chrome 陷入无限循环,无法复制/粘贴以保存我的 jsfiddle

r - 如何使用 r 删除文本文档中没有 http 的 url

javascript - 我的 Web 服务器上有一个未知的 js 文件

javascript - MS CRM 2013为脚本类型的WebResources添加版本号

php - 从网站获取YouTube channel ID