2013-01-14 4 views
1

시험지에서 몇 가지 질문을 시도해 보았습니다.하지만 특히이 문제에 대해 고심하고 있습니다. 의 라인을 따라 뭔가의 순간 메신저 생각에서 는 :2 개 또는 3 개의 단어 및 선택 항목 일치

([A-Z]*),? ([A-Z]*) ([A-Z]*)? 

하지만이 나던 내가 확신 나는이 포맷이 /가 일반적으로 잘못된 것을 가지고 일하게 될 것으로 보인다. 도와주세요?

질문에 궁금한 점이 있으시면 달성하려는 내용에 대한 아이디어가 있습니다. 많은 감사.

개인 이름은 하나의 성 및 하나 이상의 성을 포함해야합니다. 성 이 forename (들) 앞에 놓여지면성에 쉼표가 와야합니다. 여기 은 몇 가지 예입니다

  • GRAHAM ARTHUR CHAPMAN
  • ERIC의 IDLE
  • 길리엄, 테리
  • 테리 존스
  • 클리즈, JOHN MARWOOD
  • 마이클 페일 린

방법 egrep 명령을 사용하여 사람이 들어있는 줄을 찾으십니까? 알 이름? 이름은 대문자로만 작성되었다고 가정 할 수 있습니다.

+0

적어도 두 단어로 된 모든 줄을 찾고 싶다고 생각합니다. 쉼표가 있으면 첫 단어 뒤에 나타나야합니다. 적어도 그것이 질문을 해석하는 방법입니다. – Floris

+0

그래서 선을 찾고 성을 추출하지 않고 forenames의 배열로만 검색하면됩니까? – Bergi

+0

필자는 줄을 찾는 것이 모두 필요하다고 생각합니다. –

답변

1

정규식에는 두 개의 forenames 만 허용됩니다. (그룹을 캡처하지 않고)이 사용 : 당신은뿐만 아니라 두 개의 공백과 일치하는 것처럼

[A-Z]+,?([A-Z]+)+ 

나는 +들에 *의 변경했습니다. 이것은 무엇을

+0

'TOM, DICK, AND HARRY' 및'123 NOT A NAME'과 일치합니다. – Floris

+0

@Floris : 두 행 모두 질문에 지정된대로 개인 이름을 포함하고 있기 때문에 가능합니다. 이름으로 만 구성된 행을 일치 시키려면 시작 및 끝 앵커를 추가해야합니다 (물론'egrep'이 어떻게 처리하는지 모르겠습니다). – Bergi

+0

영어가 제 첫 번째 언어가 아닙니다. 질문을 잘못 해석하면 사과드립니다. 나는 "함유하고있다"는 생각은 아마도 "가지고있다"와 "오직 가지고있다"를 의미 할 수 있을까? 주어진 예제를 통해 내가 원래의 코멘트를 한 이유는 후자라고 생각했지만 - 이제 나는 당신의 요점을 볼 수있다. '^'와'$'앵커를 사용하여 아래의 @Explosion Pills의 답을보십시오. 나는 @Ted West가 올바른 답을 말해 주어야한다고 생각한다. (그가 알고 있다면 ...) – Floris

2
^[A-Z]+,?([A-Z]+)+?$ 

라인이 선택적으로 쉼표 편지, 그리고 적어도 하나 개의 문자 뒤에 공간으로 구성되어 단어의 다른 그룹으로 시작되었는지 확인합니다.

관련 문제