2017-09-06 5 views
1

그래서 나는이 같은 문자열이 (') 정규식을 사용하여 문자열에? 또한 작은 따옴표 (')의 끝을 선택하는 별도의 정규식? 정규 표현식이 가능합니까? 견적의 시작 부분을 < <으로 바꿉니다. 당신은 당신이 필요로하는 그 부분을 유지할 필요가있는 부분의 둘레에 그룹을 캡처에만 패턴, 사용의 일부 부품을 교체하고, 단지 일치 (및 소비) 할 필요가있을 때정규식 선택

최종 문자열

" <<asdf'+<<asdf'+<<we' + 1" 
+0

나는 그것이 정말로 필요하다고 생각하지 않습니다. 여기서 성취해야 할 최종 목표는 무엇입니까? 'a' (으)로 변경하십시오 ....? –

+0

@Wiktor : '처음에 <<를 대체하려고합니다. 따라서 최종 문자열은 다음과 같이 보입니다. "<< asdf'+ << we' + 1" – wonghenry

+0

쉽게 그것을 할 수있는 자바 스크립트를 사용할 수있는 경우 그냥 정규식으로 할 수있는 방법을보고 싶어요. – wonghenry

답변

1

모양을 제거.

var a = " 'asdf'+'asdf'+'we' + 1"; 
 
console.log(
 
    a.replace(/'([^']*')/g, '<<$1') 
 
); 
 
// And, to replace both ' in one go (notice the) shift to the left): 
 
console.log(
 
    a.replace(/'([^']*)'/g, '<<$1>>') 
 
);
여기

,

  • ' - 경기 및 소비 '
  • ([^']*') - 일치와 [^']*와 ('보다 0 개 이상의 문자 다른 그룹 1에을 캡처) 그리고 나서 '. 대체 패턴의 $1은 유효한 일치 항목이 발견 된 후 그룹 1에 저장된 내용의 자리 표시 자입니다.
  • ([^']*) - ' 이외의 0 개 이상의 문자 만 그룹 1에 캡처하므로 '은 일치하고 사용되며 $1 자리 표시 자 콘텐츠에 없습니다.

또한 regex demo 1regex demo 2을 참조하십시오.

+0

감사합니다! 한 가지 더 질문합니다. 한 쌍의 끝에 '어떻게 일치시킬 수 있습니까? 그래서 나는 문자열을 얻을 것이다 : "<"+ <> + <> +1 – wonghenry

+1

@wonghenry 같은 아이디어가 있고, 당신의 정규 표현식은 이미 준비가되어있다. 'a = a.replace (/ '([^'] *) '/ g,'<<$1> ')'을 사용하십시오. –

+0

gotcha, 설명 주셔서 감사합니다! – wonghenry