2011-01-11 7 views
2

대괄호를 사용하여 정규식을 통해 발견 된 일부 텍스트를 둘러싸고 자 노력 중입니다. (is) 모든 is 교체 예 :regex를 사용하여 대괄호로 텍스트를 둘러싸는 방법?

Input is  : This is a long sentence that IS written. 
Desired output: This (is) a long sentence that (IS) written. 

내가 어떻게 할 수 있습니까? 하여 예

답변

6
irb(main):001:0> s = 'This is a long sentence that IS written.' 
=> "This is a long sentence that IS written." 
irb(main):002:0> s.gsub(/\bis\b/i, '(\0)') 
=> "This (is) a long sentence that (IS) written" 
irb(main):003:0> s 
=> "This is a long sentence that IS written" 
irb(main):004:0> s.gsub!(/\bis\b/i, '(\0)') 
=> "This (is) a long sentence that (IS) written" 
irb(main):005:0> s 
=> "This (is) a long sentence that (IS) written" 
+0

감사합니다. "\ 0"이 무엇인지에 대한 "이름"을 알려 주시면 그것에 대해 읽을 수 있습니까? – Zabba

+0

\ 1 \ 2 등은 캡처 그룹을 나타냅니다 (예 : 정규식의 첫 번째'()'괄호, 두 번째 등). \ 0은 전체 정규식 일치를 나타냅니다. (정규 표현식 내에서 그들은 역 참조 (backreferences)라고 불리지 만 정규 표현식 밖에서는 무엇을 부르는지 모르겠습니다.) – ephemient

+0

@Zabba'\ 0'은 정규 표현식과 일치하는 텍스트의 전체 내용을 포함합니다. – Alex

1

(여전히 발견 문자열 원래 사례 다움을 유지)에 대한 일치를 찾는 정규식 패턴이 ""인 [II] [SS B \

] \ B 당신은 또한 \ B를, 이것 저것 괄호, 괄호, 또는과 일치하는 패턴이 포위하기 위해 단어 경계

사용할 수 있습니다

:

을 16,

GSUB (/ \ B [Ⅱ] [SS] \ B 형 /은 "(\ 0)")

기본적 \ 0 자체에 의해 둘러싸여 대체 될 기존 일치 괄호.

편집 : 정규 표현식을 테스트 할 수 있습니다. ruby regex

관련 문제