2014-02-13 2 views
0

고정 길이 레코드에서 이름을 찾아 내가 위해 첫 번째 이름은 앤드류정규식 내가이 플랫 파일을

00012 Andrew Carter 
02349 John Smith 
20089 Charlotte Andrew 

각 라인에 포함 된 어디 있는지 I 만 표시 기록을 만들고 싶어, 세 개의 필드 : five- 직원 번호, 이름 및 성. 각 필드는 공백으로 구분됩니다.

\d{5}\sAndrew.+ 

: @Sam 설리반은 지적으로

\d+\sAndrew.+ 

또는, 당신은 또한 자릿수를 지정할 수 있습니다 :

+0

당신은 정보를 캡처하려고합니까? – mrres1

답변

2

나는 다음과 같은 패턴과 일치하는 모든 행을 찾으려면 생각 점을 개행 문자와 일치하도록 정규식 옵션을 설정 한 경우 @Sam Sullivan도 지적한대로 .+ 대신 [^\n]+을 사용할 수 있습니다. 그러나 @Casimir et Hippolyte가 지적한 것처럼, 기본적으로 점은 개행 문자와 일치하지 않습니다.

+0

약간 변경 : \ d {5 \ sAndrew [^ \ n] +' – Sam

+1

@SamSullivan : 도트는 기본적으로 개행과 일치하지 않으므로이 대체는 쓸모가 없습니다. –

+0

좋은 지적! 나는 그것을 잊었다. – Sam

0
([0-9]{5})\s(Andrew)\s([A-Za-z\s.,-]{1,}) 

각 괄호는 세 가지 정보를 캡처합니다.

00012, Andrew,이 5 숫자, 공백, 이름 앤드류 (대소 문자 구분), 마지막 이름은 성씨와 접미사를 포함한 무엇이든 다음 다른 공간 등을 필요로 Carter

.

세 번째 캡처 Z까지 대문자 A, 또는 소문자 A-Z, 공백, 기간, 쉼표, 또는 대시를 찾고

그래서 "카터 스미스 주니어 의학 박사" 유효한 성입니다.

0

먼저이 도구는 친구가 될 수 있습니다. 프레소를 확인 "http://www.ultrapico.com/expresso.htm" 그것은 디자인과 정규 표현식에의 테스트를위한 큰 것은 또한 RegexCoach이 : http://www.weitz.de/regex-coach/ actualy 라인을 시작하지만 사용자가 질문에 대한 정상 코드

같은 정규식 등에서 특정 요소를 뽑아 오기 단계 수 있습니다^ 다섯 자리 숫자 : \ D \ D \ D \ D \ D 공간 : \ 이름 w : 앤드류 공간 : \ 성 w : [A-Za-z]와 + 종료 : 그래서 $

: ^ \ D \ D \ D \ D \ D \ wAndrew \ [A-Za-z]와 + $

면책 조항 w - 테스트하지,하지만 꽤 확신 :)

+0

{Count} 구문이 표준 구문이 아니며 파서 고유라고 생각했습니다. – Steve

+0

성은 Smith-Lincoln – mrres1

+0

으로 전화하면 어떨까요? 그것이 [A-Za-z \ -] 일 필요가있을 것 같아요. – Steve

관련 문제