2014-07-10 1 views
0

와 내부 일치하는 문자열 바꾸기 : 나는 액센트 모든 문자를 대체 할나는 텍스트 파일에 몇 줄이 메모장 ++ 및 정규식

Joëlle;Dupont;123456;[email protected] 
Alex;Léger;134234;[email protected] 

:

Joëlle;Dupont;123456 
Alex;Léger;134234 

을 그리고 난으로 그들을 대체 할 (e, e ...)가 아닌 문자로만 (é, ë ...)을 입력 할 수 있지만 메일 주소에만 만 입력하면됩니다.

나는 대문자를 소문자로 바꾸기 위해 \L\E을 사용할 수 있다는 것을 알고 있지만, 내가해야 할 유일한 것은 아니다. 하여 교체하려면

(.*?);(.*?);(\d*?)\n 

을 :

내가 사용

$1;$2;$3;\[email protected]\E\n 

하지만 액센트 문자를 대체 할 것 :

Joëlle;Dupont;123456;joë[email protected] 
Alex;Léger;134234;alex.lé[email protected] 

당신이 어떤 생각을 가지고 있는지 어떻게 메모장에서이 작업을 수행 할 수 있습니다 ++, 심지어 하나 이상의 교체로, 어쩌면 당신이 나를 도울 수 있습니다.

답변

1

나는 전체 인구 모르겠지만, 당신은 ee의 변화를 대체하기 위해 아래에 사용할 수 있습니다

[\xE8-\xEB](?!.*;) 

을 그리고 e로 교체합니다.

regex101 demo

이 정규식은 어떤 è, é, ê 또는 ë과 일치 더 ;이없는 경우, e로 대체 [나는 열 이름을 복용, this webpage에서 위의 범위를 가지고] 그 후 같은 줄에. o의 변화를


: c를 들어

[\xF2-\xF6](?!.*;) 

(이 하나, 그래서 당신은 또한 직접 ç에 넣을 수 있습니다) :

\xE7(?!.*;) 

a의 경우 :

[\xE0-\xE5](?!.*;) 
+0

그들은 프랑스 문자이고, 다른 문자는 ç, à, ô ...와 같이 c, a, o ...로 대체 할 수 있습니다. 하지만 가장 중요한 점은, 예를 들어 é를 e로 대체하는 것이고 나머지는 수정하지 않고 메일 주소에서만 수행하는 것입니다. –

+0

@Minizarbi 다른 글자에 대해 추가하고 각각을 '주'글자로 대체하십시오. 정규 표현식은'; '가 구분 기호 인 경우에만 데이터의 마지막'열 '을 수정합니다. 메일 주소가 두 개 이상인 경우'(?!. *;) 대신'(? = [^; @] * @)'를 사용할 수 있습니다. – Jerry

+0

나는 (?!...) 또는 (? = ...) 그리고 제 문제에 대한 해결책이라고 생각합니다. 그리고 나는 당신이 링크 한 두 웹 사이트를 몰랐다. –

관련 문제