有没有人使用有一个他们喜欢使用的好的正则表达式库?您在网上找到的大多数正则表达式要么包含错误,要么过于关注边缘情况,以至于它变成了 100% 验证任何规范的竞争。当然你可以自己写,但是当你按小时计费时,周围有一个图书馆很方便。
6 回答
升压,对于 C++
您可以在regexlib中搜索正则表达式。
除了几乎是市场上最好的正则表达式工具(说真的),RegexBuddy 是我所知道的唯一一个可以让你在不同的正则表达式渲染引擎之间切换的工具。
在此处查看信息:
http://en.wikipedia.org/wiki/RegexBuddy
RegexBuddy 的专有正则表达式引擎允许该软件模拟许多流行的正则表达式风格的规则和限制。
最近,我在 Perl 中进行所有文本解析。如果我需要另一种语言的正则表达式,我会选择PCRE。
PCRE 库是一组使用与 Perl 5 相同的语法和语义实现正则表达式模式匹配的函数。PCRE 有自己的原生 API,以及一组对应于 POSIX 正则表达式 API 的包装函数。PCRE 库是免费的,即使用于构建商业软件。
PCRE 最初是为 Exim MTA编写的,但现在被许多知名开源项目使用,包括 Apache、 PHP、 KDE、 Postfix、 Analog和 Nmap。PCRE 还进入了一些知名的商业产品,例如 Apple Safari。其他一些使用 PCRE 的有趣项目包括 Chicken、 Ferite、 Onyx、 Hypermail、 Leafnode、 Assemos和Wenlin。
PCRE是成熟的,得到了众多项目的支持。Apache 和 Apple 都对使其成为高质量有既得利益。我怀疑任何其他 RE 库都可能很快在功能和质量(或可能两者之一)上超越它。
提供常用正则表达式的一个很好的来源是 Perl 的Regexp::Common。
目前提供以下模式(来自主页):
Regexp::Common::balanced
Provides regexes for strings with balanced parenthesized delimiters.
Regexp::Common::comment
Provides regexes for comments of various languages (43 languages currently).
Regexp::Common::delimited
Provides regexes for delimited strings.
Regexp::Common::lingua
Provides regexes for palindromes.
Regexp::Common::list
Provides regexes for lists.
Regexp::Common::net
Provides regexes for IPv4 addresses and MAC addresses.
Regexp::Common::number
Provides regexes for numbers (integers and reals).
Regexp::Common::profanity
Provides regexes for profanity.
Regexp::Common::whitespace
Provides regexes for leading and trailing whitespace.
Regexp::Common::zip
Provides regexes for zip codes.
e-texteditor 会在您键入时突出显示您正在搜索的内容。这非常有用,因为您可以将“示例文本”粘贴到文件中,然后在搜索字段中输入您的正则表达式,然后在您面前查看匹配的内容。
这些“视觉正则表达式构建器”都不能替代实际学习正则表达式。