2012-11-25 4 views
1

내가 아직 포장되지 않은 경우에만, 루비에서 문자열을 괄호로 포장하기 위해 노력하고있어 괄호 작동하지.

미리 감사드립니다.

답변

3

아주 가까이 있습니다. 첫 번째 부정적인 lookaround는 선견지명이다. 따라서 첫 번째 문자는 to_wrap입니다.

"(?<!\()#{to_wrap}(?!\))" 

그리고 단지 괄호를 탈출 할 수있는 다른 옵션을 제공하기 위해 (정말에 사용하는 취향의 문제지만, 좀 더 쉽게 읽을 수 그것을 발견) : : 그냥 lookbehind가 있는지 확인

"(?<![(])#{to_wrap}(?![)])" 
+0

정확히 내가 필요한 것, 감사합니다. 또한 []) 구문을 사용해 주셔서 감사합니다. :) – suricactus

+0

@ erik1001 사실 그것은 하나의 문자 클래스를 생성하여 문자 클래스를 악용합니다 (대부분의 메타 문자는 문자 클래스에서 이스케이프 할 필요가 없습니다). 나는 대괄호를 제외하고는 거의 모든 것을 (특히'.],'[*]'등으로) 사용하는 경향이있다. –

+0

@ m.buettner 왜 괄호를 벗어나지 않았습니까? 그것은 어떤면에서 더 좋습니까? ''(? FUT