2016-10-11 6 views
0

알파벳, 숫자 및 마침표를 제외한 모든 줄을 C++의 공백으로 대체하려고합니다.C에서 정규 표현식을 결합합니다.

누구든지 C 정규 표현식을 제공 할 수 + + 내가 사용할 수 있습니까?

지금까지 [^[:alnum:]]을 사용하고 있었지만 알파와 숫자로만 작동합니다.

감사합니다.

+0

'영문자, 숫자 및 공백을 제외한 마침표'... 예제를 보여줄 수 있습니까? –

+1

문자 클래스에 마침표를 추가하면됩니다.'[^ [: alnum :].] ' – Galik

+0

@Galik주의 깊게 도트를 이스케이프 처리해야합니다. AFAIK. –

답변

2
std::replace_if(line.begin(), line.end(), 
    [](char ch){ return !isalnum(ch) && ch != '.'; }, ' '); 

탈출에 대해 논쟁 할 필요가 없습니다.

+0

정말 고마워! 이것은 효과가 있었다. –

2

은 내가 C++ 사람이 아니지만, 당신은 정규식에 점을 추가하는 시도 할 수 있습니다 :

[^[:alnum:].] 

대안 :

[^a-zA-Z0-9.] 
+1

나는 Gayathri Jeyaram이 (영숫자 또는 점)이 아닌 공백 (아마도 공백)을 대체하려고한다고 생각하는데,'\ s'를 포함 할 필요가 있는지 확신하지 못합니다. –

+0

안녕하세요, 작동하지 않았습니다. –

관련 문제