2009-11-09 4 views
1

문자열을 검색 가능한 용어로 분할하는 방법을 알아 내려고하고 있습니다. 나는 따옴표 붙은 검색 문자열을 정규식으로 분할

  • 반환 따옴표 그래서
  • 난에 적용하고있어 경우에없는 문구를 인용 (단일 문자가 아닌 인용 된 결과를 무시) 공간과 작은 따옴표에

    • 분할에 필요합니다 "인용 문구"하나의 단어 이 반환

      • 인용 문구
      • 단일
      • 단어
      여기

      내가 지금까지 (자바 스크립트에서) 가지고,하지만 난 별도로 따옴표를 제거해야 할 것입니다.

      var searchArray = temp.match(/"[^"]*"|[^\s']{2,}/g); 
      for (index in searchArray) 
          searchArray[index] = searchArray[index].replace(/"/g, ''); 
      

      하나의 정규 표현식을 사용하여이를 수행 할 수있는 방법이 있습니까?

    +0

    이 입력 텍스트 고려 : 그것은 또한 최고의 따옴표 안에 경기에서 공백을 후행 제거합니다' "여기 혼합 '따옴표'" "큰 따옴표" '작은 따옴표' '또한'기타 'way''를, 무엇을 무시할 "단일 문자"가 따옴표 인 경우 어떻게합니까? –

    +0

    글쎄, 나는 작은 따옴표에 대해서는 신경 쓰지 않겠지 만, 그 결과가 소유욕이 아니길 바랬다. 이 토론을 위해, 우리는 작은 따옴표를 무시할 수 있습니다. – Joe

    답변

    3

    이 방법이 효과가있는 것 같지만 모든 사례를 다룰 수 있는지 잘 모르겠습니다. Internet Explorer 5에서 작동하는지 모르겠지만 걱정하지 않아도됩니다. 그것은 IE 6 및 내가 시도한 다른 모든 브라우저에서 작동합니다.

    var regex = /("?)\s*\b(\S[^\1]*?)\b\s*\1/g; 
    var str = '"quoted phrase " single "quoted" words " yes "'; 
    var res; 
    
    while ((res = regex.exec(str))) { 
        alert(res[2]); 
    } 
    
    +0

    그게 내가 원하는 것을 할거 같아. 고마워요! 귀하의 답변을 유용하다고 표시하고 싶지만 아직 충분한 평판이 없습니다. – Joe

    관련 문제