代码之家  ›  专栏  ›  技术社区  ›  shuttle87 Bhargav Boda

基本boost regex问题

  •  1
  • shuttle87 Bhargav Boda  · 技术社区  · 15 年前

    我正在尝试编写一些C++代码,测试字符串是否具有特定格式。在这个程序中,高度后跟一些十进制数: 例如 “高度123.45”或“高度12”将返回真值,但 “someotherstring 123.45”将返回false。

    我的第一次尝试是写以下内容:

    string action;
    cin >> action;
    boost::regex EXPR( "^height \\d*(\\.\\d{1,2})?$/" ) ;//height format regex
    bool height_format_matches = boost::regex_match( action, EXPR ) ;
    if(height_format_matches==true){
      \\do some stuff
    }
    

    然而,身高匹配似乎从来都不是真的。非常感谢您的帮助!

    1 回复  |  直到 15 年前
        1
  •  4
  •   Tim Pietzcker    15 年前

    放下尾随的斜杠,它就应该起作用了。可能是javascript regex留下的?在JavaScript中,正则表达式通常用斜杠分隔;在C++中,它们只是字符串。如果将斜线保留在原来的位置,则会指示正则表达式引擎匹配字符串结尾后的斜线( $ ,当然,这总是失败的。