我制作了一个简单的正则表达式引擎,它支持连接、交替、闭包和char a .. z。
我代表nfa和dfa的方式是使用记录:
type state = int with sexp, compare
type alphabet = char with sexp, compare
type transaction = state * alphabet option * state with sexp, compare
type d_transaction = state * alphabet * state with sexp, compare
type state_set =
这是我的代码:
var gmail_pattern = new RegExp(/^([a-zA-Z0-9]+)([\.{1}])?([a-zA-Z0-9]+)\@gmail(\.[a-z]{2,6}(?:\.[a-z]{2})?)$/i);
但是,如果我测试gmail_pattern.test(email),当电子邮件字段有Gmail地址时,它不起作用。
什么正则表达式将此URL和URL中包含“book”的任何URL作为模式匹配之一进行匹配?这个网站有一个图书类别和下面的各种其他子类别。如何向下遍历以搜索图书的所有URL?
require 'anemone'
Pattern = %r[(\/books)*]
Anemone.crawl("http://www.example.com/") do |anemone|
anemone.on_pages_like(Pattern) do |page|
puts page.url
end
end
我在visual studio 2015中使用了gtest框架的google测试适配器。但是,当我编译带有测试的项目时,visual studio的test explorer中什么也没有出现,我认为我在控制台中得到了正确的测试报告。我已经尝试在一个新项目中编译与googletest/msvc中相同的测试,测试资源管理器中报告了这些测试。我设置了相同项目的设置,但在测试资源管理器中仍然没有反应。可能的问题是什么?
我正在将一个相当大的RegExp重构为一个返回RegExp的函数。作为向后兼容性测试,我将返回的RegExp的.source与旧RegExp的.source进行了比较:
getRegExp(/* in the case requiring backward compatibility there's no arguments */)
.source == oldRegExp.source
然而,我注意到旧的RegExp包含各种多余的反斜杠,比如[\.\w]而不是[.\w]。我想重构这样的比特,但是有很多这样的比特,如果有一个类似的检查就好了(向后兼容性没有被破坏)。问题是,/[