2013-06-17 2 views
-3

%에 포함 된 이름을 문자열에서 추출해야합니다. 예를 "%column1% 들어?특수 문자 내의 문자를 일치

+0

마커를 일치 시키려면 '\ %'를 사용할 수 있습니까? – gt6989b

+0

물론 있습니다. 시도해 봤어? 어떤 언어로 작업하고 있습니까? – Bergi

+0

죄송합니다. C#으로 작성하면 거의 "% \\ w * %"와 (과) 같이 작동하지만 가능한 한 빨리 깨집니다. '(아포 스트로피) 문자를 사용합니다. – taralex

답변

2

그냥 %(.+?)%을 사용하고 정규식 글로벌 옵션 (일반적으로 /g)를 지정하기 위해 프로그래밍 언어를 사용하고, 다시 경기를 모두 얻을. 각 경기에는 column1, column2 등이 포함됩니다.

+0

아니요, 일치 항목에'% '가 포함되어 있습니까? 캡처 그룹에는 이름 만 포함됩니다. – Bergi

+0

괜찮습니다. trimstart ("%")와 함께 % s을 제거 할 수 있습니다. trimEnd ("%"). 고맙습니다! – taralex

1

이 정규식 것이다 위의 구절에서 열 이름을 추출하는 방법이 있나요 첫 번째 열이고 %column2%는 두 번째이며, %column'-4%는 일 "

이외의 문자가있는 열입니다 그들을 일치 :

(?<=%).*?(?=%) 

그들을 추출 (지정) 응용 프로그램 언어를 사용

를 응용 프로그램 언어를 봐 어라운드에서 사용 그룹 1을 지원하지 않는 경우. 이 정규식 :

%(.*?)% 
+1

왜 그렇게 복잡합니까? 그의 언어는 미리보기/둘러보기를 지원하지 않을 수 있습니다. 왜 단지'/%(.+?)%/g'가 아닌가? 또한 캡처 그룹이 누락되었습니다. 일부 구현에서는 데이터를 캡처하려는 경우 캡처 그룹이 필요합니다. – qJake

+0

@ SpikeX 그의 언어는'g' 수정자를 가지고 있지 않을 수도 있습니다 : p – HamZa

+0

@HamZa lookahead/lookbehind를 가지고있는 것보다 글로벌 플래그를 갖는 것이 더 확실하다고 확신합니다.하지만 네가 기술적으로 정확하다고 가정합니다. : P – qJake