问题标签 [lookahead]

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 投票
3 回答
1033 浏览

c# - 没有单个字母分隔符的正则表达式匹配

Medicare 资格 EDI 示例响应是我想要匹配的内容。

我有一个看起来像这样的字符串:

我需要一组看起来像这样的匹配:

我整天都在处理这个问题,我似乎无法得到一个可接受的匹配方案。如果我想不通,我将使用 for 循环对它进行程序化编程并查找冒号索引。

我尝试过使用负前瞻,但我一无所获。这是 C#,我在测试时使用这个测试器(.Net) 以及Regex Coach (非 .Net)。

我试过用这个:

但这仅匹配键及其冒号,例如“LN:”,“FN:”等。

如果我使用:

它也消耗下一个匹配的两个字符键和冒号,导致我只匹配每个其他键/值对。

有没有办法让我在 .Net 中正确使用 RegEx 匹配这些,还是我坚持使用更程序化的解决方案?请记住,我不能假设键总是大写字母。它们可能包含数字,但它们始终是两个字符,然后是一个冒号。

提前感谢我能得到的任何帮助。

0 投票
14 回答
986499 浏览

regex - Regular Expressions: Is there an AND operator?

Obviously, you can use the | (pipe?) to represent OR, but is there a way to represent AND as well?

Specifically, I'd like to match paragraphs of text that contain ALL of a certain phrase, but in no particular order.

0 投票
4 回答
22427 浏览

regex - 需要一个正则表达式来匹配不能全为零的可变长度数字字符串

我需要验证表单上的输入。我希望输入是 1 到 19 位之间的数字。输入也可以从零开始。但是,我想验证它们并非全为零。我有一个正则表达式,可以确保输入是数字并且介于 1 到 19 个数字之间。

但我不知道如何检查整个字符串是否全为零。我试过这个

但它在 00000000000000000001 上失败,因为它允许可变数量的零。

如何检查整个字符串不为零?

谢谢。

我正在尝试在 ASP.NET RegularExpressionValidator 中执行此操作,因此我希望使用单个表达式。我还有其他选择,所以如果不能做到这一点,我也不会不走运。

0 投票
2 回答
100 浏览

c++ - 是否可以在 boost:regex 的前瞻中使用“重复”?

我正在尝试在嵌套在块中的 C++ 代码中提取一些变量,
例如,如果我有

我想匹配
"DEL_TYPE_NONE"
"DEL_TYPE_DONE"
"DEL_TYPE_WAIT"

我做了这样的模式,
std::string pat("(?<=^[ \\t]?)[A-Z0-9_]+(?=,$)");

但是当编译器试图阅读我的模式时,我不断收到错误消息。
我不明白,但有问题吗?在 \\t 之后标记
如果我摆脱 ? 标记然后它编译并只找到“DEL_TYPE_WAIT”
为什么我不能在前瞻中使用重复?请帮帮我,我完全迷路了;(

谢谢你

0 投票
2 回答
20863 浏览

javascript - Javascript 不会使用正则表达式拆分

自从我开始写这个问题以来,我想我已经找到了我遇到的每个问题的答案,但我想我还是会发布,因为它可能对其他人有用并且更多的澄清可能会有所帮助。

我试图将正则表达式与 javascript 函数拆分一起使用。由于某种原因,即使在我调用 match 时它找到了匹配项,它也没有拆分字符串。我最初认为问题出在我的正则表达式中使用前瞻。这是一个简化的示例:

不起作用:

作品:

看来问题是在拆分示例中,传递的字符串没有被解释为正则表达式。使用正斜杠而不是引号似乎可以解决问题。

我用下面这个看起来很傻的例子证实了我的理论:

有没有人认为 match 函数假设你有一个正则表达式而 split 函数没有这很奇怪?

0 投票
8 回答
1867 浏览

c# - 正则表达式匹配某个字符之前的任何内容?

我必须从文本中解析一堆统计数据,它们都被格式化为数字。

例如,这一段:

纽约市 81.8% 的 3 至 8 年级学生达到或超过年级水平的数学标准,而纽约州其他地区的学生这一比例为 88.9%。

我只想匹配 81 和 88 数字,而不是后面的“.8”和“.9”。

我怎样才能做到这一点?我听说过反向引用或前瞻之类的术语。这些会有帮助吗?

我正在使用 C#。

编辑:在上面的例子中,我需要得到“3”和“8”。这只是一个简单的例子,但我需要几乎所有的数字。

0 投票
1 回答
914 浏览

parsing - javacc parseException...前瞻问题?

我正在为 javacc 中的一个非常简单的语法编写一个解析器。它开始融合在一起,但目前我完全陷入了这个错误:

有问题的输入行是z = y + z + 5

给我带来问题的产生是我从 varDecl() 调用的表达式:

表达式如下所示:

我不知道为什么会出现此错误 - 任何见解都将不胜感激。

0 投票
2 回答
56795 浏览

regex - 使用正则表达式的字符串否定

是否可以在正则表达式中进行字符串否定?我需要匹配所有不包含字符串的字符串".."。我知道您可以使用它^[^\.]*$来匹配所有不包含"."但我需要匹配多个字符的字符串。我知道我可以简单地匹配一个包含".."然后否定匹配的返回值来获得相同结果的字符串,但我只是想知道这是否可能。

0 投票
6 回答
2436 浏览

regex - 如何在正则表达式中结合正负条件?

我对正则表达式相当陌生,需要一些帮助。我需要在 Perl 中使用正则表达式过滤一些行。我将把正则表达式传递给另一个函数,所以它需要在一行中完成。

我只想选择包含"too long"且不以开头的行"SKIPPING"

这是我的测试字符串:


跳过这个债券,因为到期太长了 TKIPPing 这个债券,因为到期太长了拍
这个债券,因为到期太长了
你好,这个期限太长了,
这个太长了
你好

正则表达式规则应与“太长”的以下内容匹配:


跳过这个债券,因为 它
到期太久

它应该跳过:

“你好”,因为它不包含“太长”
“跳过这个债券,因为到期时间太长”,因为它不包含“跳过”

0 投票
9 回答
3674 浏览

python - 对生成器使用前瞻

我在 Python 中实现了一个基于生成器的扫描器,它将字符串标记为形式为(token type, token value)的元组:

会打印

下一个任务意味着解析令牌流,为此,我需要能够在不向前移动指针的情况下从当前项目向前看一个项目。迭代器和生成器不会一次提供完整的项目序列,而是根据需要提供每个项目,这一事实使得前瞻与列表相比有点棘手,因为除非__next__()调用下一个项目,否则不知道下一个项目。

基于生成器的前瞻的简单实现是什么样的?目前我正在使用一种解决方法,这意味着从生成器中列出一个列表:

然后,可以通过以下方式轻松实现前瞻:

当然,这很好用。scan()但是考虑到这一点,我的第二个问题出现了:首先制造发电机真的有意义吗?