2014-03-03 4 views
0

저는 Regex를 처음 사용합니다. 질문은 나를 묻습니다. 문자열의 시작과 끝 부분에 공백을 찾기 위해 정규식을 생각할 수 있습니까? 아래의 스포일러를 확인하기 전에 자신을 시도해보십시오 :정규식 도움말이 필요합니다. 패턴 매칭으로

솔루션이있다 (? :^\ S +) | (: + $ \들)이 정규식 작업을 수행하는 방법

?

각 단계를 안내해 줄 수 있습니까? Regex의이 행은 무엇을합니까? 도와주세요. 감사.

답변

0

^\ s + 패턴은 앞 공백을 발견하고,
및 \ s + $ 패턴은 후행 공백을 찾습니다.

희망 하시길 바랍니다.

regular expressions으로 재미있는 정보를 더 읽을 수 있습니다.

+0

예. 링크를 가져 주셔서 감사합니다. – NinjaG

2

() 성냥 그룹.

?: "비 캡처"로 설정하십시오.

^은 문자열 시작 부분부터 시작됩니다.

$은 문자열의 끝과 일치합니다.

|은 "또는"을 의미합니다.

\s은 공백과 일치합니다.

+ 탐욕스러운 반복. (자세한 정보는 아래 링크를 참조하십시오.)

그래서 모든 것을 넣으면 처음에 공백을 찾는 표현식이 생깁니 다 또는 문자열 끝입니다.

정규식 here으로 재미있는 내용을 더 읽을 수 있습니다.

+1

'? :'은 선택 사항이 아닙니다. '(? :) '에있는 것은 그것이 비 캡처 그룹이라는 것을 의미합니다. 그러나 선택 사항이 아닙니다. 사실, 텍스트의 시작 부분에 하나 이상의 공백을 찾거나 텍스트의 끝에 공백을 하나 이상 찾습니다. – rmaddy

+0

@rmaddy - 통화가 잘되었습니다. +1. 복사하여 붙여 넣기가 실패합니다! – Drewness

1

실제로 (? :)를 사용하여 그룹화 할 필요는 없습니다. 패턴 ^\s+|\s+$도 잘 작동합니다. 또한 줄 바꿈 줄을 검색해야하는 경우에도 줄 바꿈 문자와 일치하기 때문에이 경우 \ s (예 : [\ t] 대신)를 사용하는 것을 조심해야 할 수 있습니다.

0

이 정규식에는 |으로 구분 된 두 개의 주요 부분이 있습니다. 즉, (?:^\s+) 또는 (?:\s+$)과 일치하는 문자열이면 일치하는 문자열입니다.

^\s+은 "문자열 시작 부분에 하나 이상의 공백 기호"를 의미합니다.

\s+$은 "문자열 끝에 하나 이상의 공백 기호"를 의미합니다.

(?:) 안에있는 정규 표현식과 일치하는 부분 문자열은 나중에 사용하기 위해 저장됩니다 (일치 그룹이라고 함). 일치가 있는지 아닌지를 확인하는 것이 필요하다면 걱정할 필요가 없습니다.이 경우 공백을 후행 찾을 선두 공백

및 패턴 \ s의 + $를 찾을 수 정규식 패턴

  ^\s+ 

를 들어 ^\s+|\s+$

+1

실제로'? :'는 그룹이 저장되지 않았 음을 나타냅니다. – rmaddy

0

로 정규식을 다시 작성할 수 있습니다.

이 링크를 통해 정규 표현식에 대한 재미있는 내용을 더 읽을 수 있습니다.

관련 문제