问题标签 [regex-lookarounds]

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 投票
1 回答
445 浏览

regex - 如何选择两个单词之间有 3 个或更多字符的单词

下面的文本是使用正则表达式从一个巨大的文本中过滤出来的,我必须在其中找到没有 porc 和 pig 的 dog 和 cat 的句子。

为了找到上面的内容,我使用了正则表达式:

现在,我必须在 dog 和 cat 之间找到包含 3 个或更多字符的单词。

我试过了 :

它不起作用。

任何人都知道如何解决它?

0 投票
3 回答
2706 浏览

c# - C#正则表达式不匹配字符串中的某些单词

我已经尝试了几个小时来解决这个问题。假设有一个字符串

我正在尝试创建一个仅匹配但 忽略2:1942:3Exclude1 4:32Exclude2 5:23

即如果 4:32 或 n:nn 前面有 Exclude1 或 Exclude2,则不匹配。谢谢

0 投票
1 回答
111 浏览

regex - 基于条件的正则表达式返回值

我有两个可能的输入需要用正则表达式解析:

192.168.1.1:80 [172.16.1.1:8080]

或者

192.168.1.1:80 [172.16.1.1]

如果 :8080 存在,我想返回 8080,但如果没有,我想返回 80。

这可能吗?

谢谢

0 投票
2 回答
653 浏览

python - Python:RegEx 重复子组查找

我有一个Tue 6:30 AM - 12:00 PM, 3:00 PM- 7:00 PM我想得到的字符串

我试过,

但这总是只给出第一个持续时间, ["Tue", ["3:00 PM- 7:00 PM", "3:00 PM- 7:00 PM"]] 我可以尝试在程序中用逗号分隔持续时间,但我不希望这样做,因为有一种方法可以RegEx自行完成,但我的表达中遗漏了一些东西。

0 投票
1 回答
690 浏览

regex - 正则表达式除字符串以外的所有字符

我想选择除以字符串 . 开头的所有空格字符之外的所有空格字符Send,

前瞻使用(?!)将不起作用。还有什么方法可以做到这一点?

0 投票
1 回答
727 浏览

regex - 排除特定字符串的正则表达式

我目前正在实施一个身份管理解决方案,该解决方案将为用户提供管理其所有端点帐户的能力。

目前,我们公司的密码策略符合默认的 Windows 要求:必须包含数字或特殊字符等。

不幸的是,在新系统的密码策略中,我们可以要求一个数字、一个特殊的或两者兼有,但不能“两者之一”。但是,新系统允许通过正则表达式进行验证。

目前,我们将此设置为 DISALLOW 以下正则表达式:

这工作得很好。但是,我们想将其更改为 ALLOW 一个数字或一个特殊的,同时也禁止前一个。这是我尝试过的:

但是,我无法让它工作。数字/特殊组可以正常工作,但是单词组不能。它确实会查看是否在字符串的末尾使用了“密码”或某些变体,但不是在开头...

有什么建议么?系统使用标准(Perl 风格)正则表达式。

0 投票
1 回答
145 浏览

c# - 复杂的正则表达式 C# 或 perl

我在一个文件中有以下 SQL 文本。目标是从文件中识别数据库表名称。下面只是一个通用示例,我正在寻找通用解决方案,无论是 C# 还是 Perl。我没有做很多正则表达式,因此如果有人给我一个开始,我将不胜感激

所以基本上,我需要自动找出 SQL 中所有表的名称。在这种情况下,test1、test2、test3 和 test4

我知道模式是表名前面有“from”、“inner join”、“left outer join”,然后是数据库名称(例如 db1、db2 等),然后是文字 '。和表名。

0 投票
1 回答
94 浏览

.net - 解析 HTML 标头标签顺序的最有效方法

我正在尝试确定给定页面是否不遵守标题标签(h1、h2 等)顺序。事实上,我希望能够解析一堆页面,并返回不遵循标题顺序的每个页面

我的第一个目标是能够确定 an 后面是否紧跟 h2 以外的其他内容。我用以下模式实现了

以前的正则表达式对我有用,虽然它不是很有效并且远非完美。

因此,首先我希望得到一些帮助来改进这种模式,如果可能的话,我想解释一下我的旧模式以及为什么它如此低效。其次,我想升级/修改模式以实现最初的目标,即确保文档标题标签顺序得到尊重。

注意: 我使用 RegexHero 进行基准测试

我知道正则表达式通常不是解析 HTML 的最佳实践,但这对我来说更像是一种练习,可以更有效地使用环视、原子分组等,谢谢您的理解。

我们可以使用以下模式和以下文本作为示例

图案:

文本:

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

0 投票
2 回答
72 浏览

java - 如何在 Java 中编写一个 .replaceFirst 对不在评论中的组执行 .replaceFirst 的正则表达式?

所以我需要返回修改后的字符串,它在跳过注释时用另一个令牌替换令牌的第一个实例。这是我正在谈论的一个例子:

作为一名前 .NET 开发人员,我认为这很容易。我会像这样做一个负面的回顾:

但后来我了解到 Java 不能做到这一点。所以在得知花括号没问题后,我尝试了这个:

这并没有引发异常,但它确实与评论中的 @@ 匹配。

当我使用 Java 正则表达式测试器测试这个正则表达式时,它按预期工作。我能想到的唯一一件事就是我使用的是 Java 1.5。Java 1.5 的正则表达式引擎中是否有可能存在错误?假设它确实如此,我如何让 Java 1.5 做我想要它做的事情而不分解我的字符串并重新组装它?

编辑我将 # 更改为 -- 运算符,因为看起来正则表达式会更复杂,有两个字符而不是一个字符。我最初并没有透露我正在修改查询,以避免关于“你不应该那样修改查询!”的题外话讨论。我这样做是有充分理由的。请不要讨论查询修改的良好做法。谢谢

0 投票
2 回答
14963 浏览

regex - sed 正则表达式可以模拟后视和前瞻吗?

我正在尝试编写一个 sed 脚本,它将捕获文本文件中的所有“裸”URL 并将它们替换为<a href=[URL]>[URL]</a>. “裸”是指未包含在锚标记内的 URL。

我最初的想法是我应该匹配前面没有 " 或 > 并且后面也没有 < 或 " 的 URL。但是,我在表达“没有前面或后面”的概念时遇到了困难,因为据我所知 sed 没有前瞻或后视。

样本输入:

样本期望输出:

观察到第三行没有被修改,因为它已经在里面了<a href>。另一方面,第一行和第二行都被修改了。最后,观察所有非 URL 文本都未修改。

最终,我正在尝试做类似的事情:

我首先验证以下内容是否正确匹配并删除 URL:

然后我尝试了这个,但它无法匹配从文件/输入开头开始的 URL:

有没有办法在 sed 中解决这个问题,或者通过模拟后向/前瞻,或者显式匹配文件的开头和文件的结尾?