2014-05-23 2 views
2

아래와 같이 문자열 패턴이 있습니다.문자열을 대체 할 정규 표현식

"XX0XX XX7XX XX11XX XX26XX XX30XX XX38XX XX45XX **3** 10.1, Belkin Keyboard Folio"

은 내가이 정확하지 않은 3의 첫 번째 항목을 대체하고 지금까지 코드 아래 수행 한 "XX"

와 접두사와 접미사를하지 않는 "XX49XX" 지난 "3"를 교체해야

var string = 'XX0XX XX7XX XX11XX XX26XX XX30XX XX38XX XX45XX 3 10.1, Belkin Keyboard Folio'; 

str = string.replace(/3/, 'XX49XX'); 
+0

무엇으로 교체 하시겠습니까? 전혀 시도한 적이 있습니까? –

+0

질문을 편집하여 입력 내용, 원하는 출력 및 지금까지 시도한 내용을 정확히 이해할 수 있도록해야합니다. –

+0

나는 마지막으로 "3"접두사와 접미사 XX var에 문자열을하지 않는 = 'XX0XX XX7XX XX11XX XX26XX XX30XX XX38XX XX45XX 3 10.1, 벨킨 키보드 폴리오'교체해야 문자열 패턴 아래에있다; str = string.replace (/ 3 /, '__49__'); – user1046987

답변

0

이 양식을 가진 문자열의 첫 번째 숫자 (하나 이상의 숫자)를 대체 :

string.replace(/3(?!\d*XX)/, "XX49XX"); 

이렇게하면 3XX##XX 구조의 일부가 아닙니다.

2

네거티브 미리보기를 사용하면 마지막으로 일치하는 3 :

을 사용할 수 있습니다.
string = string.replace(/3(?!.*3)/, 'XX49XX'); 

// XX0XX XX7XX XX11XX XX26XX XX30XX XX38XX XX45XX 49 10.1, Belkin Keyboard Folio 
0

anubhave는 숫자 3

또한 문자열의 관련 부분에 일치시킬 수의 마지막 선두로부터 일치하는 방법을 보여줍니다.

string.replace(/\b\d+ (\d+\.\d+, Belkin Keyboard Folio)/, 'XX49XX') 

JS 슬프게도 lookbehinds의 용량을 가지고 있지 않지만, 당신이 내다 사용할 수 있습니다 <number> <number>.<number>,Belkin Keyboard Folio