이름의 첫 글자와 성 전체 추출

이름의 첫 글자와 성 전체 추출

사용자 이름의 첫 글자와 성 전체를 얻으려면 Regex를 사용해야 합니다. 현재 내가 가지고 있는 것은 두 개의 이름을 가진 사용자에게는 잘 작동하지만 세 번째 이름이 포함되면 코드가 작동하지 않습니다.

이것이 내가 현재 가지고 있는 것입니다:^(.)[^ ]* (\w+)$

작동 대상:

  • 톰 존스 → TJones.

다음에서는 작동하지 않습니다:

  • 톰 스미스 존스. TJones를 반환해야 합니다.

또한 성에서 특수 문자를 제외할 수 있도록 하고 싶습니다. 알파벳 문자만 있으면 됩니다.

업데이트: 다른 게시물(\w)에서 이 코드를 찾았습니다.*(\s+\w+)$

해당 코드는 첫 번째 문자와 마지막 단어를 가져오지만 공백을 제거하지는 않습니다.

예: Tom Mike Andrew Jones -> TJones 대신 T Jones.

그런 다음 이를 (\w).*(\s+)(\w+)$로 업데이트했는데 완벽하게 작동합니다. 이제 예를 들어 Pierre-Louis와 같은 성의 특수 문자를 무시하는 방법을 알아내야 합니다.

정규식 전문가 중 특수 문자를 무시하는 방법을 아는 사람이 있습니까?

답변1

정규식을 다음과 같이 변경할 수 있습니다.

(\w).*\W+(\w+)$

단어가 아닌 문자와 일치하는 \s사용자 (대문자 W) 대신 .\W

관련 정보