3

ing对于以ored或结尾的单词,这个 Perl 正则表达式的 Boost::Regex 等效项是en什么?

/ing$|ed$|en$/

...

4

2 回答 2

3

最重要的区别是 C++ 中的正则表达式是字符串,因此所有正则表达式特定的反斜杠序列(例如\wand\d应该是双引号 ( "\\w"and "\\d")

于 2010-03-29T12:48:09.617 回答
2
/^[\.:\,()\'\`-]/

应该成为

"^[.:,()'`-]"

/C++ 中不存在特殊的 Perl 正则表达式分隔符,因此正则表达式只是一个字符串。在这些字符串中,您需要注意正确转义反斜杠(\\对于\原始正则表达式中的每个)。但是,在您的示例中,所有这些反斜杠都是不必要的,因此我完全删除了它们。

还有其他警告;据我所知,Boost 库中不存在一些 Perl 功能(如可变长度后视)。因此,可能无法简单地翻译任何正则表达式。不过,您的示例应该没问题。虽然有些很奇怪。.*[0-9].*将匹配在某处包含数字的任何字符串,而不是all numbers.

于 2010-03-29T13:47:46.583 回答