问题标签 [oniguruma]

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

regex - 正则表达式/Textmate 混淆

我正在尝试创建一个 Textmate 片段,但遇到了一些困难。基本上,我想输入一个名称并将其拆分为各个部分。

例子,

比尔盖茨:(比尔),(比尔),(盖茨),(盖茨),(比尔盖茨),(比尔盖茨),(比尔盖茨),(比尔盖茨)

编辑**

因此,如果我使用编程语言,我肯定可以非常简单地产生这些结果。例如,我可以拆分单词,然后调用大写或小写函数来产生这个输出。

但在我的情况下,我使用 Textmate 及其正则表达式功能来创建选项卡片段。我想输入一些触发键,即doit,按tab,然后输入用户名。然后将创建上面的输出。这不会为我节省太多时间,但我觉得我在 Textmate 中经常遇到这类东西,并想弄清楚。

我一直在使用它作为参考,但仍然不知道如何使用正则表达式来选择单词和大小写的值(\u \U \l \L)

http://manual.macromates.com/en/snippets

0 投票
4 回答
702 浏览

regex - 请解释这个正则表达式

正则表达式对我来说完全是空白。我现在正在处理 TextMate 中的一个,它可以做我想做的事情......但我不知道为什么它会做我想做的事情。

这在 TextMate 片段中使用,它的作用是获取一个标签并将其作为 id 名称输出。因此,如果我在第一个位置输入“名字”,则会输出“名字”。以前它看起来像这样:

这会将“名字”变成“名字”。所以我知道下划线为空格添加了下划线,并且 /L 将所有内容都小写了......但我无法弄清楚其余部分的作用或原因。

有人愿意逐条解释吗?

编辑

这是有问题的实际代码段:

0 投票
1 回答
540 浏览

ruby - 如何使用 Oniguruma 正则表达式指定有效的字符属性?

我正在使用 oniguruma gem 在 ruby​​ 1.8 中获取支持 unicode 的正则表达式。根据语法文档,我应该能够使用\p{M}\p{Mark}将代码点与 Mark 属性匹配。

但是,当我执行以下操作时

我明白了ArgumentError: Oniguruma Error: invalid character property name {M}。如果我使用{Mark},或者如果我使用支持的其他语法之一,我会得到同样的错误\p

我究竟做错了什么?如何使用 Oniguruma 正则表达式指定有效的字符属性?

更新 - 如果我使用其中一种 UTF16 编码,则正则表达式会编译;但由于我的字符串是 UTF8 格式,这无济于事。所以我的问题变成了:如何使用UTF-8 Oniguruma 正则表达式指定有效的字符属性?

0 投票
2 回答
136 浏览

regex - 正则表达式问题 - 向后好而不是向前 Textmate

我不太擅长正则表达式,但在 Textmate 中,我试图清除 XML 文件中的一些多行,看起来像

我在用正则表达式查找/替换时使用它,

上述情况多次出现,但如果我进行查找,它会找到第一个,然后选择包括外部节点在内的所有内容,直到文件中的最后一个。

如果我从最后一行查找上一个(向后)它会正确捕获一个块。我不确定我在这里做错了什么,是否有人甚至可以提出一种更有效的方法来做到这一点。

谢谢。

0 投票
2 回答
370 浏览

ruby - 为什么 =~ 运算符有时只有副作用?

我注意到 Ruby/Oniguruma 中的副作用仅出现在 4 个看似等效的语句中的 1 个中。为什么变量day定义在009, 而不是003, 005or 007

nb#1:在所有四种情况下,它都是相同的正则表达式和相同的字符串。

nb#2:我已经验证了 MS Windows 和 Ubuntu Linux 中的行为。

0 投票
3 回答
25125 浏览

regex - 如何使用正则表达式删除没有单词的行?

我正在使用 textmate 来编辑文件。我想删除所有不包含单词的行。这是一个例子。

如何删除所有不包含单词“pad”的行,并使用正则表达式得到这个结果?

谢谢大家。

0 投票
1 回答
285 浏览

ruby - 正则表达式与?被动组内的量词?

我正在为 SQL 编辑 TextMate 语法。它目前有正则表达式(为了澄清而省略了关键字):

这正确匹配函数定义,如

我想处理CREATE OR REPLACE,所以我将正则表达式更改为

它不会匹配 aCREATE或 a CREATE OR REPLACE。我也通过使新的可选组被动来修复它:

但是..为什么以前不匹配?我希望它匹配,但随后可能会给我一个我没想到的捕获组(如果外部被动组指示符没有向下渗透到新的内部组)。

0 投票
1 回答
1420 浏览

ruby - Ruby 1.9 正则表达式与上下文无关语法一样强大吗?

我有这个正则表达式:

当我针对多个字符串对其进行测试时,它似乎与上下文无关语法一样强大,因为它可以正确处理递归。

Fun with Ruby 1.9 Regular Expressions ”有一个例子,他实际上安排了一个正则表达式的所有部分,使它看起来像一个上下文无关的语法,如下所示:

在他重新排列正则表达式部分的技术和我的递归命名捕获组示例之间,这是否意味着 Ruby 1.9 正则表达式具有等同于上下文无关语法的能力?

0 投票
1 回答
766 浏览

regex - Textmate 使用通配符查找和替换

这是我在几百个地方所拥有的[:admin, @account]。我想要做的是删除,[:admin, ]这样剩下的就是@account或者我在那里的任何对象。因为有时它是[:admin, ticket]or [:admin, group]

正则表达式是否有可能摆脱包裹的括号([])和:admin,

0 投票
4 回答
3828 浏览

ruby - 用 Ruby Regex 匹配逗号分隔的列表

给定以下字符串,我想匹配列表的元素和冒号后的其余部分:

富,酒吧,巴兹:某事

即我期望前三个匹配组是“foo”、“bar”、“baz”。没有逗号,也没有冒号。元素的最小数量是 1,并且可以有任意多个。假设没有空格和小写。

我已经尝试过了,它应该可以工作,但由于某种原因没有填充所有匹配组:

^([a-z]+)(?:,([a-z]+))*:(something)

这与 \1 中的 foo 和 \2 中的 baz (或任何最后一个元素)相匹配。我不明白为什么我没有得到 bar 的匹配组。

有任何想法吗?

编辑:Ruby 1.9.3,如果这很重要。

EDIT2:Rubular 链接:http ://rubular.com/r/pDhByoarbA

EDIT3:在末尾添加冒号,因为我不只是想匹配列表。抱歉,问题过于简单化了。