2011-12-09 3 views
0

나는 어떤 정상 ENV가 난 그냥하지만 ​​내 경우에는 =을 사용할 수도 바르위한 있도록 몇 가지 환경 변수정규식 컬럼에 별도의 환경 변수에

내가 (정규식 만 사용) 컬럼으로 분할 할이 I var가 LS_COLORS (아래 참조) 어떻게 그런 경우에 정규식을 사용하여 별도의 열로 내 환경 변수를 분할 할 수 있습니까?

USER=idptest1 
GROUP=support 
HOST=beetle 
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: 
G_BROKEN_FILENAMES=1 

(?<=^[\w]+)=과 같은 것을 사용할 수 없습니까? ^[\w]+=을 사용하는 경우 값 부분에서 픽업하지 않는 name= (이름 부분 만 해당)을 선택합니다.

here 라인에서 모든 첫 번째 발생이 =으로 강조 표시되면 내 작업이 완료됩니다. 덕분에 같은 간단한 뭔가

+0

는 "단지 정규식을"정의에 추가합니다. 어떤 종류의 분할 기능을 사용하는 것 같습니다. 더 잘 작동하면 다른 것을 사용하지 않는 이유는 무엇입니까? 어떤 언어/도구를 사용하고 있습니까? – Qtax

+0

@ Qtax : http://regexr.com/?2ve9r 만 강조하면됩니다. 나는 자바 btw를 사용하고 있습니다. – abi1964

+0

@Qtax : 주로 패턴이 [\ w]'대신 '(? <=^[\ w] +) ='와 같은 긍정적 인 lookbehind를 사용하고 싶습니다. 이런 패턴을 내기 위해'(? <=^[\ w] +) ='가능한가? – abi1964

답변

1

시작 :이 모든 것을 캡처 할 수있는 비 욕심 캡처 변수 이름을 캡처 그룹과 욕심 캡처 그룹이

^(.*?)=(.*)$ 

후 '='마지막까지 처음 라인의 값을. 당신이 처분하는 공백이있는 경우

다음

^\s*(.*?)\s*=\s*(.*?)\s*$ 
+0

정규식은 내가 원하지 않는 모든 라인을 선택합니다.'=' – abi1964

+0

의 첫 번째 발생만을 선택하고 싶을 것입니다. 아마도 여러분이 염두에두고있는 정규식 구현에서 (아마도 당신의 질문에서 명확하지 않습니다), 자바와 스칼라에서 내가 많이 사용하는 기본값은 행 기반 매칭이며 전체 입력과 일치하도록 재정의 할 수있다. 자바에서 이것은 DOTALL 모드라고 불리우며 (? s) 인라인으로 활성화 할 수 있습니다. 당신이 염두에두고있는 구현을위한 동등한 플래그가 있다고 확신합니다. –

관련 문제