问题标签 [negative-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.
c# - 没有单个字母分隔符的正则表达式匹配
Medicare 资格 EDI 示例响应是我想要匹配的内容。
我有一个看起来像这样的字符串:
我需要一组看起来像这样的匹配:
我整天都在处理这个问题,我似乎无法得到一个可接受的匹配方案。如果我想不通,我将使用 for 循环对它进行程序化编程并查找冒号索引。
我尝试过使用负前瞻,但我一无所获。这是 C#,我在测试时使用这个测试器(.Net) 以及Regex Coach (非 .Net)。
我试过用这个:
但这仅匹配键及其冒号,例如“LN:”,“FN:”等。
如果我使用:
它也消耗下一个匹配的两个字符键和冒号,导致我只匹配每个其他键/值对。
有没有办法让我在 .Net 中正确使用 RegEx 匹配这些,还是我坚持使用更程序化的解决方案?请记住,我不能假设键总是大写字母。它们可能包含数字,但它们始终是两个字符,然后是一个冒号。
提前感谢我能得到的任何帮助。
regex - 需要一个正则表达式来匹配不能全为零的可变长度数字字符串
我需要验证表单上的输入。我希望输入是 1 到 19 位之间的数字。输入也可以从零开始。但是,我想验证它们并非全为零。我有一个正则表达式,可以确保输入是数字并且介于 1 到 19 个数字之间。
但我不知道如何检查整个字符串是否全为零。我试过这个
但它在 00000000000000000001 上失败,因为它允许可变数量的零。
如何检查整个字符串不为零?
谢谢。
我正在尝试在 ASP.NET RegularExpressionValidator 中执行此操作,因此我希望使用单个表达式。我还有其他选择,所以如果不能做到这一点,我也不会不走运。
php - 替换本地链接,保留外部链接
我有一个 API 调用,它本质上返回托管 wiki 应用程序页面的 HTML。然后我根据我的网站风格指南做一些 substr、str_replace 和 preg_replace 功夫来格式化它。
我做了一组调用来格式化我的左侧导航(将指向 pageX 的链接更改为我的 wikiParse?page=pageX 类型的东西)。我可以在左侧导航中安全地执行此操作。然而,在正文中,我不能安全地假设链接是指向内部页面的链接。它很可能是指向外部资源的链接。所以我需要做一个 preg_replace 匹配 href= 后面没有 http://。
这是我的尝试:
这似乎去除了页面上的全部内容。有人看到我在哪里滑倒了吗?我不认为我离得太远了,只是看不到下一步该去哪里。
干杯
regex - 使用正则表达式的字符串否定
是否可以在正则表达式中进行字符串否定?我需要匹配所有不包含字符串的字符串".."
。我知道您可以使用它^[^\.]*$
来匹配所有不包含"."
但我需要匹配多个字符的字符串。我知道我可以简单地匹配一个包含".."
然后否定匹配的返回值来获得相同结果的字符串,但我只是想知道这是否可能。
regex - 如何在正则表达式中结合正负条件?
我对正则表达式相当陌生,需要一些帮助。我需要在 Perl 中使用正则表达式过滤一些行。我将把正则表达式传递给另一个函数,所以它需要在一行中完成。
我只想选择包含"too long"
且不以开头的行"SKIPPING"
这是我的测试字符串:
跳过这个债券,因为到期太长了 TKIPPing 这个债券,因为到期太长了拍
这个债券,因为到期太长了
你好,这个期限太长了,
这个太长了
你好
正则表达式规则应与“太长”的以下内容匹配:
跳过这个债券,因为 它
到期太久
它应该跳过:
“你好”,因为它不包含“太长”
“跳过这个债券,因为到期时间太长”,因为它不包含“跳过”
regex - Regex: what does (?! ...) mean?
The following regex finds text between substrings FTW and ODP.
What does the (?!
...)
do?
java - Java 正则表达式不起作用 - 为什么?
match.matches() 返回 false。这很奇怪,因为如果我使用这个正则表达式并测试字符串到 rubular.com,就会显示两个匹配项。我究竟做错了什么?
.net - 执行此操作的替代正则表达式 "\.(asmx(?!/js)|aspx|htm)"
有没有办法重写这个正则表达式,使其不包括“/js”的前瞻?
就性能而言,这甚至是我应该担心的事情吗?它被用于过滤 HTTP 请求。
编辑: 要明确:我想特别阻止“.asmx/js”,但允许所有其他 .asmx 请求通过。
regex - 正则表达式负前瞻
在我的主目录中,我有一个包含 Drupal 平台的文件夹 drupal-6.14。
在此目录中,我使用以下命令:
该命令的作用是压缩文件夹drupal-6.14,不包括drupal-6.14/sites/ 的所有子文件夹,包括它所包含的sites/all 和 sites/default 。
我的问题是关于正则表达式:
该表达式可以排除我想要排除的所有文件夹,但我不太明白为什么。
使用正则表达式是一项常见的任务
匹配所有字符串,不包含子模式 x的字符串除外。或者换句话说,否定子模式。
我(认为)我理解解决这些问题的一般策略是使用负面的前瞻,但我从来没有达到令人满意的程度理解积极和消极的前瞻(前/后)是如何工作的。
这些年来,我读过很多关于他们的网站。PHP 和 Python 正则表达式手册,其他页面,如http://www.regular-expressions.info/lookaround.html等等,但我从来没有真正对它们有过深入的了解。
有人可以解释一下这是如何工作的,也许可以提供一些类似的例子来做类似的事情?
-- 更新一:
关于 Andomar 的回应:双否定前瞻能否更简洁地表示为单个肯定前瞻语句:
即是:
相当于:
???
-- 更新二:
根据@andomar 和@alan moore - 您不能将双负前瞻互换为正前瞻。
regex - RegExp:想要查找所有不以“.html”结尾的链接
我是正则表达式的新手(尽管我已经成功使用过很多次)。我想查找文档中所有不以“.html”结尾的链接我想出的正则表达式是:
在我的编辑器 Notepad++ 中,href=\"([^"]*)\"
找到所有链接(以“html”结尾的链接和不以“html”结尾的链接)。为什么消极的lookbehind不起作用?
我也尝试过前瞻:
但这也没有用。
有人可以帮忙吗?
干杯,卑躬屈膝