对于以ing
或ed
或en
结尾的单词,此Perl正则表达式的Boost :: Regex等效项是什么?如何将Perl正则表达式转换为与Boost :: Regex一起使用?
/ing$|ed$|en$/
...
对于以ing
或ed
或en
结尾的单词,此Perl正则表达式的Boost :: Regex等效项是什么?如何将Perl正则表达式转换为与Boost :: Regex一起使用?
/ing$|ed$|en$/
...
/^[\.:\,()\'\`-]/
应该变成
"^[.:,()'`-]"
在C++中不存在特殊的Perl正则表达式分隔符/
,所以正则表达式只是一个字符串。在这些字符串中,您需要注意正确地排除反斜杠(\\
,在原始正则表达式中每\
)。但在你的例子中,所有反斜杠都是不必要的,所以我完全放弃了它们。
还有其他一些注意事项;据我所知,一些Perl功能(如可变长度lookbehind)在Boost库中不存在。所以它可能无法简单地翻译任何正则表达式。不过,你的例子应该没问题。尽管其中有些很奇怪。 .*[0-9].*
将匹配任何包含某个数字的字符串,而不是all numbers
。
最重要的区别是,在C++正则表达式都是字符串,因此,所有的正则表达式特殊反斜杠序列(如\w
和\d
应该用双引号("\\w"
和"\\d"
)
这个perl表达式怎么样:'/ O $ /' $ in perl表达式的结尾是什么意思? 另一个问题是:当我在boost中编写例如表达式“^ B_”时,意味着什么? – Yadollah 2010-04-30 17:09:47
在Perl中不需要内部字符类('[...]')。 – mob 2010-03-29 14:48:24
对。他们没有必要开始。在某些情况下,不必要的反斜杠甚至可能成为语法错误(例如'\ <')。 – 2010-03-29 14:55:51