为了账号安全,请及时绑定邮箱和手机立即绑定

javascript正则表达式 - 看看替代方案?

/ 猿问

javascript正则表达式 - 看看替代方案?

javascript正则表达式 - 看看替代方案?

这是一个在大多数正则表达式实现中都能正常工作的正则表达式:

(?<!filename)\.js$

这匹配.js为一个以.js结尾的字符串,除了filename.js

Javascript没有正则表达式。是否有人能够组合一个替代正则表达式,实现相同的结果,并在JavaScript中工作?

这里有一些想法,但需要辅助功能。我希望用正则表达式实现它:http//blog.stevenlevithan.com/archives/mimic-lookbehind-javascript


查看完整描述

3 回答

?
慕姐4208626

^(?!filename).+\.js 适合我

测试:

  • test.js匹配

  • blabla.js匹配

  • filename.js不匹配

正则表达式可以找到正则表达式的正确解释,以匹配不包含单词的字符串?

1.5版本的javascript开始可以使用,所有主流浏览器都支持

更新以匹配filename2.js和2filename.js但不匹配filename.js

(^(?!filename\.js$).).+\.js


查看完整回答
反对 回复 2019-07-23
?
九州编程

从ECMAScript 2018开始,本机支持lookbehind断言(甚至无限制)

在以前的版本中,您可以这样做:

^(?:(?!filename\.js$).)*\.js$

这明确地显示了lookbehind表达式隐式执行的操作:如果lookbehind表达式加上后面的正则表达式将不匹配,则检查字符串的每个字符,然后才允许该字符匹配。

^                 # Start of string(?:               # Try to match the following:
 (?!              # First assert that we can't match the following:
  filename\.js    # filename.js 
  $               # and end-of-string
 )                # End of negative lookahead
 .                # Match any character)*                # Repeat as needed\.js              # Match .js$                 # End of string

另一个编辑:

我很难说(特别是因为这个答案得到了很多支持),有一种更容易实现这一目标的方法。没有必要检查每个角色的前瞻:

^(?!.*filename\.js$).*\.js$

同样有效:

^                 # Start of string(?!               # Assert that we can't match the following:
 .*               # any string, 
  filename\.js    # followed by filename.js
  $               # and end-of-string)                 # End of negative lookahead.*                # Match any string\.js              # Match .js$                 # End of string


查看完整回答
反对 回复 2019-07-23
?
白衣非少年

我们假设你想找到所有int没有前面的unsigned

支持负面观察:

(?<!unsigned )int

不支持负面观察:

((?!unsigned ).{9}|^.{0,8})int

基本上,想法是抓住前面的n个字符并排除与负前瞻的匹配,但也匹配没有前n个字符的情况。(其中n是后视的长度)。

所以有问题的正则表达式:

(?<!filename)\.js$

会转化为:

((?!filename).{8}|^.{0,7})\.js$

您可能需要使用捕获组来查找您感兴趣的字符串的确切位置,或者您不希望用其他内容替换特定部分。


查看完整回答
反对 回复 2019-07-23

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信