问题标签 [regex]

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 投票
9 回答
1019 浏览

regex - 正则表达式用 bool 替换 Boolean

我正在研究最近从 X/Motif 转移到 Qt 的 C++ 代码库。我正在尝试编写一个 Perl 脚本,它将所有出现的布尔值(来自 X)替换为 bool。该脚本只是做一个简单的替换。

有几个条件。

1) 我们的代码中有 CORBA,并且 \b 匹配不应更改的 CORBA:: Boolean
2) 如果它被找到为一个字符串,它不应该匹配(即“布尔”)

更新:

对于#1,我使用了lookbehind

对于#2,我使用了前瞻。

这很可能适用于我的情况,但以下改进如何?

3)如果在字符串中间,则不匹配(感谢nohat)。
4)如果在评论中,不要匹配。(// 或者 /**/)

0 投票
3 回答
16786 浏览

javascript - 替换 Javascript 中正则表达式匹配的第 n 个实例

我正在尝试编写一个正则表达式函数,该函数将识别和替换字符串中匹配的单个实例而不影响其他实例。例如,我有这个字符串:

我想用&符号替换第二组管道以获取此字符串:

正则表达式函数需要能够处理 x 数量的管道并允许我替换第 n 组管道,所以我可以使用相同的函数来进行这些替换:

我知道我可以在管道上拆分/替换/连接字符串,而且我也知道我可以匹配/\|\|/并遍历结果数组,但我很想知道是否可以编写一个可以做这个。请注意,这适用于 Javascript,因此可以在运行时使用 生成正则表达式eval(),但不能使用任何 Perl 特定的正则表达式指令。

0 投票
5 回答
1597 浏览

regex - 如何使用 grep 找到损坏的 NMEA 日志语句?

我的 GPS 记录器偶尔会在日志文件末尾留下“未完成”行。我认为它们只是在最后,但我想检查所有行以防万一。

一个完整的句子示例如下所示:

该行应该以一个$符号开始,并以一个*和两个字符的十六进制校验和结束。我不在乎校验和是否正确,只要它存在即可。它还需要忽略没有校验和且位于每个文件开头的“ADVER”语句。

以下 Python 代码可能有效:

grep有没有办法用or或简单的东西来做到这awk一点?我还没有真正想出如何grep去做我想做的事。

更新:感谢@Motti 和@Paul,我几乎可以完成以下操作,但必须使用单引号并删除尾随$才能起作用:

还有两个问题,我怎样才能让它忽略空行?我可以结合最后两个greps 吗?

0 投票
25 回答
280521 浏览

javascript - 如何用链接替换纯 URL?

我正在使用下面的函数来匹配给定文本中的 URL,并将它们替换为 HTML 链接。正则表达式运行良好,但目前我只替换第一个匹配项。

如何替换所有 URL?我想我应该使用exec命令,但我并没有真正想出如何去做。

0 投票
12 回答
143557 浏览

php - datetime (2008-09-01 12:35:45) 的正则表达式模式是什么?

DateTime (2008-09-01 12:35:45) 的 RegEx 模式是什么?

我收到此错误:

未找到结束分隔符 '^'

使用:

给出这个错误:

警告:preg_match() [function.preg-match]:编译失败:在第 19 行的 E:\www\index.php 中的偏移量 0 处没有重复内容

0 投票
4 回答
1268 浏览

php - 如何抓取 HTML 标签的内容?

嘿,所以我想做的是抓住第一段的内容。该字符串$blog_post包含许多段落,格式如下:

我遇到的问题是我正在编写一个正则表达式来获取第一个<p>标签和第一个结束</p>标签之间的所有内容。但是,它抓住了第一个<p>标签和最后一个结束</p>标签,这导致我抓住了所有东西。

这是我当前的代码:

0 投票
3 回答
2483 浏览

regex - 正则表达式匹配唯一的子字符串

这是我从未记住的基本正则表达式技术。假设我正在使用一个相当通用的正则表达式实现(例如,grep 或 grep -E)。如果我要做一个文件列表并匹配任何以.styor结尾的文件.cls,我会怎么做?

0 投票
3 回答
3850 浏览

regex - 匹配 (C) 函数调用的正则表达式

有没有人有一个正则表达式来匹配 C 程序中的函数调用?

0 投票
5 回答
5103 浏览

c# - 使用正则表达式解析日志文件

我目前正在为我们的内部日志文件(由 log4php、log4net 和 log4j 生成)开发一个解析器。到目前为止,我有一个很好的正则表达式来解析日志,除了一个烦人的位:一些日志消息跨越多行,我无法正确匹配。我现在拥有的正则表达式是这样的:

日志格式(我用来测试解析器)是这样的:

当我现在运行解析器时,我只得到日志开始的那一行。如果我将其更改为跨越多行,我只会得到一个结果(整个日志文件)。


@samjudson:

您需要将 RegexOptions.Singleline 标志传递给正则表达式,以便“。” 匹配所有字符,而不仅仅是除了换行符(这是默认设置)之外的所有字符。

我试过了,但它与整个文件匹配。我还尝试将消息组设置为 .+? (非贪婪),但它匹配单个字符(这也不是我要找的)。

问题是消息的模式也与日期组匹配,所以当它没有在换行符上中断时,它只会继续下去。


我现在将这个正则表达式用于消息组。它可以工作,除非日志消息中的模式与日志消息的开头相同。

0 投票
6 回答
3293 浏览

regex - 如何评估IP?

如何确定字符串是否为 IP 地址?IPv4还是IPv6_

最少和最多的字符是多少?

我认为这将是一个正则表达式的答案。