【发布时间】:2011-02-02 00:39:43
【问题描述】:
对于以 ing 或 ed 或 en 结尾的单词,与此 Perl 正则表达式等效的 Boost::Regex 是什么?
/ing$|ed$|en$/
...
【问题讨论】:
标签: c++ regex perl boost-regex
对于以 ing 或 ed 或 en 结尾的单词,与此 Perl 正则表达式等效的 Boost::Regex 是什么?
/ing$|ed$|en$/
...
【问题讨论】:
标签: c++ regex perl boost-regex
最重要的区别是 C++ 中的正则表达式是字符串,因此所有正则表达式特定的反斜杠序列(例如 \w 和 \d 都应该用双引号引起来("\\w" 和 "\\d")
【讨论】:
/^[\.:\,()\'\`-]/
应该变成
"^[.:,()'`-]"
特殊的 Perl 正则表达式分隔符 / 在 C++ 中不存在,因此正则表达式只是一个字符串。在这些字符串中,您需要注意正确转义反斜杠(\\ 用于原始正则表达式中的每个 \)。但是,在您的示例中,所有这些反斜杠都是不必要的,因此我完全删除了它们。
还有其他注意事项;据我所知,Boost 库中不存在一些 Perl 功能(如可变长度后视)。因此,可能无法简单地翻译任何正则表达式。不过,您的示例应该没问题。虽然有些很奇怪。 .*[0-9].* 将匹配任何包含数字的字符串,而不是 all numbers。
【讨论】:
[...]) 中也不需要转义。
\<)。