问题标签 [lookbehind]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
427 浏览

regex - 正则表达式不匹配行的开头/结尾

我想要一个正则表达式只匹配 "

  • 不要出现在行首或行首的空格之后
  • 不要出现在行尾或行尾的空白之前

我想我需要使用lookbehind和lookahead。

所以匹配 " in

但不在

0 投票
2 回答
215 浏览

regex - Mod重写正则表达式以仅在前一个子集匹配时才匹配

我正在尝试制作我认为与 mod_rewrite 一起使用的简单正则表达式。

我尝试了各种表达方式,其中许多我认为很有希望,但最终都因某种原因而失败。一旦我添加了开始/结束字符串分隔符,它们似乎也都失败了。

例如,^user/(\d{1,10})(?=/)$是我尝试过的一个,但除此之外,它似乎对尾部斜杠进行了分组,而我只想对数字进行分组。我认为我需要使用积极的向后看,但我遇到了困难,因为它正在向后看一组。

我要匹配的是1)以“用户/”开头和2)可能以(\d{1,10})/(1到10位数字后跟一个斜杠)结尾的字符串

应该匹配:

不应该匹配:

编辑:对格式感到抱歉;我不明白如何通过这个降价来格式化任何东西。这些示例前面有 4 个空格,我认为这些空格应该构成一个代码块,但显然我想错了。

0 投票
2 回答
222 浏览

.net - Regex Look-Behind for Right to Left 事件

我正在提取以 Windows LogonIDs 结尾的事件......这意味着:

Special Privileges assigned to a new Logon: Logon Id: 0x007d

我认为这是最好的方法:

使用RegexOptions.RightToLeft从字符串的末尾开始搜索。

使用lookbehind所以如果{ID: LogonId} 不存在,它将尽快失败。

由于我找不到任何好的从右到左测试仪,所以我在这里寻求您的帮助。

0 投票
1 回答
1842 浏览

.net - 正则表达式以匹配带引号的字符串与负后向 (.NET)

我正在尝试创建一个 .NET 正则表达式,它将匹配 VB.NET 源代码中的引用字符串,但不包括某些不需要的字符串,例如 XML 注释和区域标签中的字符串等。

这是一个数据示例,代表 Regex 可能对其执行的一些 VB.NET 源代码:

正则表达式应匹配Debug.WriteLine方法调用中的引用字符串,但应忽略区域标签和 XML 注释中的字符串。它还应该支持 VB.NET 的引号转义语法,该语法使用两个连续的双引号来表示嵌入(转义)的引号字符:

作为一个起点,我已经尝试了以下正则表达式,但负面的后视导致它匹配后续的结束引号,就好像它们是开始引号一样。

作为一项额外的技巧,如果 Regex 可以完全忽略由一对引号字符表示的空字符串,那将会很有帮助。

请问有什么建议吗?

在此先感谢,蒂姆

0 投票
2 回答
579 浏览

html - PCRE:(+)和(-)向前/向后看(正则表达式)

我有以下字符串:

我想提取:

  • CAR123
  • 红色的
  • 这辆车是红色的——它的速度很快

到目前为止,我所拥有的是:

但是当它们不在字符串边界上时,我不确定如何设置正负前瞻和后视。

我知道,它是 HTML……我以前听说过……“不要用正则表达式解析 html……”我不需要比这更详细的东西了。

帮助表示赞赏。

谢谢!

0 投票
2 回答
921 浏览

javascript - Javascript 不匹配用引号括起来的 str

我正在用javascript编写一个替换空格的正则表达式,除非

  1. 一些特定的语法在空格前面
  2. 它被单引号和双引号包围(引号内的转义引号除外)

现在,我有很大一部分工作。它匹配在空格前面没有特定语法的所有模式,但是,我坚持使用引号部分。

我已经做了很多测试,但我就是想不通。提前致谢。

0 投票
1 回答
1806 浏览

regex - 正则表达式删除整数周围的引号?

假设我有一个字符串 "\"Bob\",\"1\",\"Mary\",\"2\""。是否可以只删除数字周围的引号而不是字母?我已经尝试过前瞻/后视,但是后视的非可变长度让我感到困惑,我不知道如何解决这个问题。谢谢。

0 投票
2 回答
438 浏览

regex - 正则表达式:负后视和否定之间的区别

来自正则表达式.info

\b\w+(?<!s)\b. 这绝对不一样\b\w+[^s]\b。当应用于 时Jon's,前者将匹配Jon后者Jon'(包括撇号)。我会留给你找出原因。(提示:\b 匹配撇号和 s)。后者也不会匹配像“a”或“I”这样的单字母词。

你能解释一下为什么吗?

另外,您能否说明一下究竟是做什么\b的,以及为什么它在撇号和 ? 之间匹配s

0 投票
2 回答
186 浏览

ruby - 除非用 \ 转义,否则匹配的 Ruby 正则表达式

要识别以下内容:

我愿意:

现在我想扩展它,使得 if[...][...][...]之后\它不会被识别:

我如何扩展正则表达式来实现这一点?

它应该适用于 Ruby 1.9.2 和 Ruby 1.8.7。

0 投票
3 回答
19042 浏览

java - Java 正则表达式错误 - 后视组没有明显的最大长度

我收到此错误:

我正在尝试匹配COFFEE,但不是BOBBEE

我正在使用java 1.6。