C++로 작업 한 이후로 꽤 오래되었습니다.하지만 제가 알 수있는 것부터 제 코드가 작동해야합니다. 코드를 포함하는 파일에서 모든 블록 주석을 대체/제거하려고합니다. 검색하는 전체 파일을 문자열에 넣었고 문자열에 줄 바꿈 문자가 포함되어 있습니다.왜이 정규식은 C++ TR1에서 작동하지 않습니까?
여기에 내가 말할 수있는이 여기에 새로운 라인을 포함에/* 아무것도 일치해야합니다 지금까지 내 코드
std::tr1::regex rx1("[/][*][\S\s]*?[*][/]");
stringName = std::regex_replace(stringName, rx1, std::string(""));
입니다 */
나는 심지어 일치 http://gskinner.com/RegExr/, 그것을 테스트했습니다 주석을 완벽하게 차단하십시오. 문제는 블록 주석이 대체되지 않는다는 것입니다. 이것은 TR1 특정 버그입니까?
백 슬래시를 이스케이프해야합니다. "\\" –
'*? '는 유효합니까? 원하는만큼 자주 매치하지만 적어도 한 번 이상? 그것은'+'와 동일하지 않습니까? – RedX
@RedX :'?'는'*'에 대한 욕심이없는 변경자입니다. –