44得票1回答
在Sublime中使用正则表达式替换包含匹配部分的值?

我设计了一个正则表达式,可以找到所有以 $ 开头并包含 _ 下划线的单词: \$(\w+)_(\w+) 我主要是在搜索变量,例如 $var_foo 等。 如何使用正则表达式组替换内容? 例如,如何去掉下划线并将下一个字母大写,比如 $varFoo ?

37得票3回答
如何使用正则表达式删除不包含特定单词的行?

我正在使用textmate编辑文件。我想要删除不包含某个词的所有行。以下是一个示例。apple ipad hp touch pad samsung galaxy tab motorola xoom 如何使用正则表达式去除所有不包含单词“pad”的行,并获得此结果?apple ipad hp t...

14得票1回答
Ruby 1.9的正则表达式和上下文无关文法一样强大吗?

我有这个正则表达式:regex = %r{\A(?<foo> a\g<foo>a | b\g<foo>b | c)\Z}x 当我用它测试多个字符串时,它似乎和上下文无关文法一样强大,因为它正确处理了递归。regex.match("aaacaaa") # =&...

12得票2回答
为什么“=~”运算符有时候会产生副作用?

我注意到在Ruby/Oniguruma中有一个副作用,它只出现在4个看似等效的语句中的1个中。为什么变量day在009中被定义,但在003、005或007中不被定义呢?irb(main):001:0> r = /(?<day>\d\d):(?<mon>\d\d)/...

8得票1回答
回溯正则表达式实现的优化技术

我正在尝试基于回溯法实现正则表达式匹配器,该方法在Exploring Ruby’s Regular Expression Algorithm中概述。编译后的正则表达式被翻译成虚拟机命令数组;对于回溯,当前命令和输入字符串索引以及捕获组信息在堆栈上维护。 在Regular Expression...

7得票2回答
Ruby 1.9.3中未实现带有数量限制的通用占有量词{m,n}+?

所有权量词是贪婪的并且拒绝回溯。正则表达式/.{1,3}+b/应该表示: 匹配除换行符以外的任何字符,1到3次,尽可能多地匹配,并且不回溯。然后匹配字符b。 在这个例子中: 'ab'.sub /.{1,3}+b/, 'c' #=> "c" 不应该进行替换,与事实相反。 这...