brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 645f79a Raw
46 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <regex>10 11// match_not_null:12//     The regular expression shall not match an empty sequence.13 14#include "test_macros.h"15#include <cassert>16#include <regex>17 18int main(int, char**)19{20  // When match_not_null is on, the regex engine should reject empty matches and21  // move on to try other solutions.22  std::cmatch m;23  assert(!std::regex_search("a", m, std::regex("b*"),24                            std::regex_constants::match_not_null));25  assert(std::regex_search("aa", m, std::regex("a*?"),26                           std::regex_constants::match_not_null));27  assert(m[0].length() == 1);28  assert(!std::regex_search("a", m, std::regex("b*", std::regex::extended),29                            std::regex_constants::match_not_null));30  assert(!std::regex_search(31      "a", m,32      std::regex("b*", std::regex::extended | std::regex_constants::nosubs),33      std::regex_constants::match_not_null));34 35  assert(!std::regex_match("", m, std::regex("a*"),36                           std::regex_constants::match_not_null));37  assert(!std::regex_match("", m, std::regex("a*", std::regex::extended),38                           std::regex_constants::match_not_null));39  assert(!std::regex_match(40      "", m,41      std::regex("a*", std::regex::extended | std::regex_constants::nosubs),42      std::regex_constants::match_not_null));43 44  return 0;45}46