나는 this is a \ string \\ with escaped \n characters \t .
정규식을 사용하여 C++에서 백 슬래시를 바꾸는 방법은 무엇입니까?
같은 문자열 내가 두 번하고자 한 각 \
즉 this is a \\ string \\\\ with escaped \\n characters \\t .
분명히 선형 적으로 문제를 해결할 수 있습니다 검색 할 수 있습니다. 나는 그것을 달성하는 더 우아한 방법이 있는지 궁금해.
My g ++ 컴파일러는 버전 4.2이며 c++0x
, c++11
을 지원하지 않습니다. 그리고 부스트 버전 1.46.1이 설치되어 있는데, 여기에는 <boost/regex.hpp>
이 포함되어 있습니다.
이 응용 프로그램은 효율성에 민감하므로 선형 접근 방식이 바람직합니다.
나는 이것을 post으로 읽고 regex.hpp가 작동한다고 생각합니다. 하지만 재귀 적 대체가 없도록 쿼리와 바꾸기 함수를 공식화하는 방법을 모르겠습니다.
Boost.Algorithm.String가'replace_all'입니다. 그것보다 훨씬 더 우아해질 수는 없습니다. – chris
@chris : 그러면''\\''을''\\\\''로 변환 할 것입니다, 그렇지 않습니까? – Cornstalks
''\\\''문자열을 어떻게 이스케이프할까요? ''\\\\''는 어떨까요? 등등? – Cornstalks