问题标签 [regex-greedy]

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 回答
166 浏览

regex - 另一个正则表达式 - 如何识别查询字符串

我正在使用 urlrewriting.net 进行 urlrewriting。我需要一些关于正则表达式的帮助(我仍然没有得到......)。

我想匹配

  • www.mysite.com/restaurant-> 匹配并返回“ restaurant
  • www.mysite.com/restaurant?page=1-> 匹配并返回“ restaurant
  • www.mysite.com/restaurant?[SOME_RANDOM_QUERYSTRING]-> 匹配并返回“ restaurant
  • www.mysite.com/seattle/restaurant-> 匹配并返回“ seattle”和“ restaurant
  • www.mysite.com/seattle/restaurant?page=1-> 匹配并返回“ seattle”和“ restaurant
  • www.mysite.com/seattle/restaurant?[SOME_RANDOM_QUERYSTRING]-> 匹配并返回“ seattle”和“ restaurant
  • www.mysite.com/seattle/restaurant-michelangelo-> 不要抓住
  • www.mysite.com/seattle/restaurant/sushi-> 匹配并返回 " seattle" 和 " restaurant" 和 " sushi"
  • www.mysite.com/seattle/restaurant/sushi?page=1-> 匹配并返回 " seattle" 和 " restaurant" 和 " sushi"
  • www.mysite.com/seattle/restaurant/sushi?[SOME_RANDOM_QUERYSTRING]-> 匹配并返回 " seattle" 和 " restaurant" 和 " sushi"
  • www.mysite.com/seattle/restaurant-michelangelo-> 不要抓住

关键是我需要 url 的目录部分而不是查询字符串部分。问题是我可以从我的网络分析工具中看到,人们用两个词进行搜索。他们都搜索城市(西雅图)+类别(餐厅),例如。“西雅图餐厅”,也适用于城市 (seattle) + 餐厅名称 (restaurant-michelangelo),例如。“西雅图餐厅-米开朗基罗”。从结构的角度来看,这当然是一团糟,因为这不是层次结构。在理想的世界中,层次结构是城市 -> 类别 -> 餐厅。但我仍然想在我的 url 结构中适应这种搜索行为。同时我也有一个页面列出了全国所有的餐馆。

我想获得有关如何创建正则表达式以及创建它们的最有效方法的帮助,因为我猜它们可能会变得非常昂贵。

谢谢

托马斯

0 投票
4 回答
575 浏览

javascript - 为什么 RegExp“贪婪”模式不起作用?

我不明白这种行为。我有这样的例子,需要捕捉 html 评论。

第二个正则表达式regex2工作正常,准确输出所需内容。首秀null。而且我不明白其中的区别。正则表达式<!--[.]*--><!--.*-->含义相同 - “在<!--将除换行符之外的任何字符从 0 到尽可能多并以-->”结尾之后。但是对于第二个它有效,而对于第一个则无效。为什么?

UPD。我已阅读评论并有更新。

所以可以使用有限的匹配变量来匹配任何东西。那么应该使用哪种方式正确使用 RegExps 呢?有[]没有他们?无法区分,两者都给出正确的输出。

0 投票
3 回答
154 浏览

java - 正则表达式中的奇怪行为

有一个关于正则表达式的问题,试图回答我发现了另一个奇怪的事情。

这将打印 YY。为什么??

这会打印 YXY

为什么不情愿的正则表达式与“X”字符不匹配?有"noting"X"nothing"但是为什么首先不匹配三个符号并匹配两个然后一个而不是三个?第二个正则表达式只匹配"nothing"s 而不是X?

0 投票
1 回答
69 浏览

regex - 需要有关为电子邮件 ID 匹配创建正则表达式的帮助

我对正则表达式很陌生,需要帮助。

如果发件人中有任何电子邮件 ID,我正在寻找一个仅当在邮件标题中找到 3 个电子邮件 ID(比如说 a@gmail.com、b@gmail.com 和 c@rediffmail.com)时才匹配的正则表达式标题那么它不应该匹配。

是否可以创建这种正则表达式?如果是,请告知。

问候, Goldy baharja@goldytips.info

0 投票
2 回答
224 浏览

java - Java正则表达式非贪婪不起作用

我正在尝试从以下 HTML 源代码中提取包含字符串“Active”的项目。请注意,活动项目可能会先出现。

这是我正在使用的正则表达式(尽量不贪心):

与 Pattern.CASE_INSENSITIVE| 图案.DOTALL | 图案.多线

它提取整个源代码而不是第二个源代码: ... 。

HTML 源代码:

您的帮助将不胜感激!

0 投票
14 回答
176351 浏览

regex - 正则表达式信用卡号码测试

我正在测试一个应用程序,其中 Regex 模式匹配信用卡,然后应该突出显示这些数字。我正在使用网站http://regexpal.com/为我的测试创建测试信用卡号。我的要求是有有效的信用卡号,它们之间可以有“-”和/或“,”。我没有成功建立这样一个号码,就像我使用网站测试它时一样

http://regexpal.com

我需要几个信用号码,下面的场景

  1. 有效的信用卡号,任何数字之间可以有“-”。
  2. 有效的信用卡号,任何数字之间可以有“,”。
  3. 有效的信用卡号码,任何数字之间可以有“,”或“-”的组合。
0 投票
3 回答
255 浏览

regex - Perl 正则表达式不够贪婪

我正在用 perl 编写一个正则表达式来匹配启动 perl 子例程定义的 perl 代码。这是我的正则表达式:

$regex 匹配启动子例程的代码。我还试图捕获 $1 中子例程的名称以及子例程名称和 $2 中的初始左大括号之间的任何空格和注释。2美元给我带来了麻烦。

考虑以下 perl 代码:

当我将此 perl 代码放入字符串并将其与 $regex 匹配时,$2 是“# This is comment 3.\n”,而不是我想要的三行注释。我以为正则表达式会贪婪地将所有三行注释放入 $2 中,但似乎并非如此。

我想了解为什么 $regex 不起作用并设计一个简单的替代品。正如下面的程序所示,我有一个更复杂的替换($re3)可以工作。但我认为理解 $regex 为什么不起作用对我来说很重要。

上面 perl 脚本的输出如下:

0 投票
1 回答
551 浏览

regex - 匹配 RegEx/XSD 中较长的有限字符串中的一个字符

我不知道这有多可行,但我正在研究 XSD 的数据类型,我想做的一件事是扩展它以允许姓氏中的连字符。所以这应该匹配Smith Fryand Safran-Foer。此外,我想将要检查的字符串的长度限制为不超过 100(或 101)个字符。我的正则表达式原来是:

现在我知道我可以做一些事情来打破它并任意允许两边各有 50 个字符,例如:

但这似乎很不礼貌。有没有办法按照以下方式做一些事情:

询问我要查找的内容的另一种方法是“匹配长度在 0 到 100 之间且其中不超过 1 个连字符的字符串”。

谢谢!

0 投票
2 回答
376 浏览

regex - 为什么这个正则表达式不贪心?

这是Perl 正则表达式匹配 IP 地址的后续内容。我想展示如何正确解决问题,但遇到了意想不到的行为。

第二场比赛失败。use re 'debugcolor'显示在 IPv6 地址中:($port_re)已经匹配。:5这让我感到惊讶,因为我没有用?. 我希望它会吞噬所有内容,直到],然后才匹配分隔冒号以及之后的内容。

为什么会发生这种情况,补救措施是什么?

0 投票
1 回答
141 浏览

regex - Actionscript 3 RegExp 量词似乎无法正常工作?

在 Actionscript 3 中,我尝试使用正则表达式来测试用户输入。以下代码测试一个字符串:

它应该允许在字符串序列的开头使用 + 或 - 符号,但只有一个。但是,它似乎忽略了 ? 量词接受任意数量的 + 或 - 符号。

我正在使用这个值数组进行测试:

在以下结果中,第五项应该是错误的。我在这里想念什么?

我已经尝试了正则表达式的这些排列,结果完全相同: