0

有一个 0 和 1 的字符串序列,我需要创建一个匹配多个位置的多个子字符串的正则表达式。

Example:
string sequence: "001100110111100010100101000011111010"
substring1: "1100"  position1: 2
substring2: "10"    position2: 3
substring3: "10001" position3: 12

如果所有子字符串在所有给定位置都匹配,则应返回 true 或 false。

在c++中可以写出这样的正则表达式吗?

谢谢你的帮助。

4

1 回答 1

0
const char * sequence = "001100110111100010100101000011111010";       
boost::regex e("??1100??????10001");
bool all_present = boost::regex_match ( sequence, e );

第二种方法:

  const char * sequence = "001100110111100010100101000011111010";       
  boost::regex exp1("1100");
  boost::regex exp2("10");
  boost::regex exp3("10001");

  bool all_present = boost::regex_match ( sequence, sequence + 2, exp1) &&  
                     boost::regex_match ( sequence, sequence + 3, exp2) &&
                     boost::regex_match ( sequence, sequence + 12, exp3);
于 2013-11-04T10:15:32.950 回答