찾다
주제excelExcel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

이 튜토리얼에서는 Excel에서 일반 표현식을 사용하여 주어진 패턴과 일치하는 하위 문자열을 찾아 추출하는 방법을 배웁니다.

Microsoft Excel은 셀에서 텍스트를 추출하는 여러 기능을 제공합니다. 이러한 기능은 워크 시트에서 대부분의 스트링 추출 문제에 대처할 수 있습니다. 대부분은 아니지만 전부는 아닙니다. 텍스트 기능이 걸려 있으면 정규 표현이 구출됩니다. 잠깐만… Excel에는 Regex 기능이 없습니다! 사실, 내장 함수는 없습니다. 그러나 자신의 것들을 사용하지 못하게하는 것은 없습니다. :)

현악기를 추출하는 VBA Regex 기능을 Excel

Excel에 사용자 정의 Regex 추출 기능을 추가하려면 VBA 편집기에 다음 코드를 붙여 넣으십시오. VBA에서 정규 표현식을 활성화하기 위해 내장 Microsoft Regexp 객체를 사용하고 있습니다. 이 코드는 Excel 전문가 Alex Frolov가 작성했습니다.

public function regexpextract ( 문자열 , 문자열 패턴, string , 옵션 인스턴스 instance_num as insteger = 0, 옵션 match_case as boolean = true ) dim text_matches () as string dim matches_index as as oror goto errhandl regexpextract = "" set regex = createobjject ( "vbscript.regexp" ) regex.pantern .pattern = pattern regex . regex.multiline = true if true = match_case regex.ignorecase = false resgex.ignorecase = true end matches = regex.execute (text) if 0 그런 다음 ( 0 = instance_num) 그런 다음 redim text_matches (matches.count -1, 0) 에 대한 redim text_matches = 0 to to mate -1 1. text_matches (matches_index, 0) = matches.Item (matches_index) 다음 matches_index regexpextract = text_matches else regexpextract = matches.Item ( instance_num -1 ) Evit 기능 errhandl : regexptract = cverr (xlerrvalue) 종료 기능

VBA에 대한 경험이 거의없는 경우 단계별 사용자 안내서가 도움이 될 수 있습니다. Excel에 VBA 코드를 삽입하는 방법.

메모. 기능이 작동하려면 파일을 매크로 가능 통합 문서 (.xlsm)로 저장하십시오.

regexpextract syntax

regexpextract 함수는 정규 표현식과 일치하는 값에 대한 입력 문자열을 검색하고 하나 또는 모든 일치를 추출합니다.

이 함수에는 다음과 같은 구문이 있습니다.

regexpextract (텍스트, 패턴, [인스턴스_num], [match_case])

어디:

  • 텍스트 (필수) - 검색 할 텍스트 문자열.
  • 패턴 (필수) - 일치하는 정규 표현. 공식으로 직접 제공되면 패턴은 이중 인용 표시로 둘러싸여 있어야합니다.
  • instance_num (선택 사항) - 추출 할 인스턴스를 나타내는 일련 번호. 생략되면 모든 발견 된 매치를 반환합니다 (기본값).
  • match_case (선택 사항) - 텍스트 케이스 일치 또는 무시 여부를 정의합니다. true 또는 생략 된 경우 (기본값), 사례에 민감한 매칭이 수행됩니다. False- 사례에 민감한 경우.

이 기능은 Excel 365, Excel 2021, Excel 2019, Excel 2016, Excel 2013 및 Excel 2010의 모든 버전에서 작동합니다.

regexpextract에 대해 알아야 할 4 가지

Excel에서 기능을 효과적으로 사용하려면 다음에 주목해야 할 몇 가지 중요한 사항이 있습니다.

  1. 기본적으로 기능은이 예제에 표시된 것처럼 발견 된 모든 일치를 인접한 셀로 리턴합니다. 특정 발생을 얻으려면 instance_num 인수에 해당 숫자를 제공하십시오.
  2. 기본적으로 기능은 대소 문자에 민감합니다 . 사례에 민감한 일치의 경우 match_case 인수를 False로 설정하십시오. VBA 제한으로 인해 사례에 민감하지 않은 구성 (? I)은 작동하지 않습니다.
  3. 유효한 패턴을 찾을 수없는 경우 함수는 아무것도 반환하지 않습니다 (빈 문자열).
  4. 패턴이 유효하지 않으면 #Value! 오류가 발생합니다.

워크 시트 에서이 사용자 정의 기능을 사용하기 전에 그것이 무엇을 할 수 있는지 이해해야합니까? 아래 예제는 몇 가지 일반적인 사용 사례를 다루고 동작이 동적 배열 Excel (Microsoft 365 및 Excel 2021)과 전통적인 Excel (2019 및 기존 버전)이 다른 이유를 설명합니다.

메모. Out REGEX 예제는 동화 간단한 데이터 세트를 위해 작성되었습니다. 우리는 그들이 당신의 실제 워크 시트에서 완벽하게 작동 할 것이라고 보장 할 수 없습니다. Regex에 대한 경험이있는 사람들은 정규 표현을 작성하는 것이 끝없는 완벽한 길이라는 데 동의 할 것입니다. 거의 항상 더 우아하거나 더 넓은 범위의 입력 데이터를 처리 할 수있는 방법이 있습니다.

문자열에서 숫자를 추출하기 위해 리그 즈

"Simple에서 Complex"로 가르치는 기본 최대의 최대에 따라 문자열에서 숫자를 추출하는 매우 일반적인 사례로 시작합니다.

가장 먼저 결정해야 할 것은 검색 할 숫자입니다 : 첫 번째, 마지막, 구체적인 사건 또는 모든 숫자.

첫 번째 숫자를 추출하십시오

REGEX가 얻을 수있는 것만 큼 간단합니다. \ d가 0에서 9까지의 숫자를 의미하고 하나 이상의 숫자를 의미한다는 점에서 우리의 정규 표현식은 다음과 같습니다.

패턴 : \ d

instance_num을 1으로 설정하면 원하는 결과를 얻을 수 있습니다.

=RegExpExtract(A5, "\d ", 1)

여기서 A5는 원래 문자열입니다.

편의를 위해 사전 정의 된 셀 ($ 2)에 패턴을 입력하고 $ 부호로 주소를 잠글 수 있습니다.

=RegExpExtract(A5, $A$2, 1)

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

마지막 번호를 얻으십시오

문자열에서 마지막 숫자를 추출하려면 다음은 사용할 패턴입니다.

패턴 : (\ d) (?!.*\ d)

인간 언어로 번역 된 것은 다음과 같이 말합니다. 이것을 표현하기 위해, 우리는 부정적인 룩 그는 (?!.*\ d)를 사용하고 있습니다. 즉, 패턴의 오른쪽에는 다른 문자 수에 관계없이 다른 숫자 (\ d)가 없어야합니다.

=RegExpExtract(A5, "(\d )(?!.*\d)")

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

팁 :

  • 특정 발생을 얻으려면 패턴 에 \ d를 사용하고 indest_num 의 적절한 일련 번호를 사용하십시오.
  • 모든 숫자를 추출하는 공식은 다음 예에서 설명합니다.

모든 경기를 추출하는 동정인

우리의 예제를 조금 더 밀면 문자열이 아니라 모든 숫자에서 모든 숫자를 얻으려고한다고 가정하십시오.

기억에 따라 추출 된 일치의 수는 옵션 인스턴스 _num 인수에 의해 제어됩니다. 기본값은 모두 일치 하므로이 매개 변수를 생략합니다.

=RegExpExtract(A2, "\d ")

공식은 단일 셀에 대해 아름답게 작동하지만 동작은 동적 배열 Excel 및 비 동력 버전에서 다릅니다.

Excel 365 및 Excel 2021

동적 배열을 지원하기 때문에 일반 공식은 계산 된 모든 결과를 표시하는 데 필요한만큼 많은 셀에 자동으로 유출됩니다. Excel의 관점에서, 이것을 유출 범위라고합니다.

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

Excel 2019 이하

예전의 엑셀에서 위의 공식은 단 한 번의 경기 만 반환합니다. 여러 경기를 얻으려면 배열 공식으로 만들어야합니다. 이를 위해 셀 범위를 선택하고 공식을 입력 한 다음 Ctrl Shift Enter를 눌러 완료하십시오.

이 접근법의 단점은 "추가 셀"에 나타나는 #N/A 오류가 많이 있습니다. 유감스럽게도, 그것에 대해 아무것도 할 수 없습니다 (iferror 나 ifna는 그것을 고칠 수 없습니다).

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

하나의 셀에서 모든 일치를 추출하십시오

데이터 열을 처리 할 때 위의 접근 방식은 분명히 작동하지 않습니다. 이 경우 이상적인 솔루션은 단일 셀에서 모든 경기를 반환하는 것입니다. 이를 수행하려면 regexpextract의 결과를 Textjoin 함수로 제공하고 원하는 구분 기호 (쉼표와 공간)와 분리하십시오.

=TEXTJOIN(", ", TRUE, RegExpExtract(A5, "\d "))

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

메모. Textjoin 기능은 Microsoft 365, Excel 2021 및 Excel 2019 용 Excel에서만 사용할 수 있으므로 공식은 이전 버전에서는 작동하지 않습니다.

문자열에서 텍스트를 추출하기 위해 리그 즈

영숫자 문자열에서 텍스트를 추출하는 것은 Excel에서 매우 어려운 작업입니다. Regex를 사용하면 파이만큼 쉬워집니다. 부정적인 클래스를 사용하여 숫자가 아닌 모든 것을 일치 시키십시오.

패턴 : [^\ d]

개별 세포 (유출 범위)에서 기질을 얻기 위해 공식은 다음과 같습니다.

=RegExpExtract(A5, "[^\d] ")

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

모든 일치를 하나의 셀로 출력하려면 다음과 같이 텍스트 합체로 regexpextract 함수를 둥지하십시오.

=TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d] "))

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

REGEX는 문자열에서 이메일 주소를 추출합니다

다양한 정보가 포함 된 문자열에서 이메일 주소를 꺼내려면 이메일 주소 구조를 복제하는 정규 표현식을 작성하십시오.

패턴 : [\ w \. \-] @[a-za-z0-9 \. \-] \. [a-za-z] {2,24}

이 동선을 분류하면 다음은 다음과 같습니다.

  • [\ w \. \-]는 1 개 이상의 영숫자, 밑줄, 점 및 하이픈을 포함 할 수있는 사용자 이름입니다.
  • @ 기호
  • [a-za-z0-9 \. \-]는 대문자와 소문자, 자리, 하이픈 및 도트 (하위 도메인의 경우)로 구성된 도메인 이름입니다. 밑줄은 여기에서 허용되지 않으므로 문자, 숫자 또는 밑줄과 일치하는 \ w 대신 3 개의 다른 문자 세트 (예 : AZ AZ 및 0-9)가 사용됩니다.
  • \. [a-za-z] {2,24}는 최상위 도메인입니다. 도트와 대문자와 소문자로 구성됩니다. 대부분의 최상위 도메인의 길이는 3 글자 길이 (예 : .com .org, .edu 등)이지만 이론적으로는 2 ~ 24 글자 (가장 긴 등록 TLD)를 포함 할 수 있습니다.

문자열이 A5이고 A2의 패턴이라고 가정하면 이메일 주소를 추출하는 공식은 다음과 같습니다.

=RegExpExtract(A5, $A$2)

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

전자 메일에서 도메인을 추출 할 수 있습니다

이메일 도메인을 추출 할 때, 첫 번째 생각은 캡처 그룹을 사용하여 즉시 @ 문자를 따르는 텍스트를 찾는 것입니다.

패턴 : @([a-za-z0-9 \. \-] \. [a-za-z] {2,24})

Regexp 기능에 제공하십시오.

=RegExpExtract(A5, "@([A-Za-z0-9\.\-] \.[A-Za-z]{2,24})")

그리고 당신은이 결과를 얻을 것입니다 :

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

고전적인 정규 표현식을 사용하면 캡처 그룹 외부의 모든 것이 추출에 포함되지 않습니다. VBA Regex가 왜 다르게 작동하고 "@"를 캡처하는지 아무도 모릅니다. 그것을 제거하려면 비어있는 문자열로 교체하여 결과에서 첫 번째 문자를 제거 할 수 있습니다.

=REPLACE(RegExpExtract(A5, "@([az\d][az\d\-\.]*\.[az]{2,})", 1, FALSE), 1, 1, "")

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

전화 번호를 추출하기위한 정규 표현

전화 번호는 여러 가지 방법으로 작성 될 수 있으므로 모든 상황에서 작동하는 솔루션을 제시하는 것은 불가능한 이유입니다. 그럼에도 불구하고 데이터 세트에 사용 된 모든 형식을 기록하고 일치시킬 수 있습니다.

이 예를 들어, 우리는 이러한 형식 중 하나에서 전화 번호를 추출하는 정규식을 만들 것입니다.

(123) 345-6789

(123) 345 6789

(123) 3456789

123-345-6789

123.345.6789

123 345 6789

1233456789

패턴 : \ (? \ d {3} [-\. \)]*\ d {3} [-\. ]? \ d {4} \ b

  • 첫 번째 부분 \ (? \ d {3}은 0 또는 1 개의 오프닝 괄호와 3 자리 숫자 d {3}과 일치합니다.
  • [-\. \)]* 부품은 hyphen, 기간, 공간 또는 닫는 괄호와 같은 정사각형 괄호의 모든 문자를 의미합니다.
  • 다음으로, 우리는 다시 3 자리 숫자가 있습니다 d {3}과 하이픈, 기간 또는 공간 [-\. ]? 0 또는 1 번 나타납니다.
  • 그 후, 4 자리 \ d {4}의 그룹이 있습니다.
  • 마지막으로, 우리가 찾고있는 전화 번호가 더 큰 번호의 일부가 될 수 없다는 단어 경계 \ b가 있습니다.

완전한 공식은 다음과 같은 모양을 취합니다.

=RegExpExtract(A5, "\(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b")

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

위의 regex는 123) 456 7899 또는 (123 456 7899와 같은 몇 가지 잘못된 양성 결과를 반환 할 수 있습니다. 아래 버전은 이러한 문제를 해결합니다. 그러나이 구문은 VBA Regexp 함수에서만 작동합니다.

패턴 : (\ (\ d {3} \) | \ d {3}) [-\. ]? \ d {3} [-\. ]? \ d {4} \ b

문자열에서 날짜를 추출하기 위해 리그 즈

날짜를 추출하기위한 정규 표현식은 날짜가 문자열 내에 나타나는 형식에 따라 다릅니다. 예를 들어:

1/1/21 또는 01/01/2021과 같은 날짜를 추출하려면 regex는 다음과 같습니다. \ d {1,2} \/\ d {1,2} \/(\ d {4} | \ d {2})

1 또는 2 자리의 그룹 D {1,2}에 이어 슬래시가 뒤따른 다음 1 ~ 2 자리의 다른 그룹, 그 뒤에 슬래시, 4 자리 또는 2 자리 그룹 (\ d {4} | \ d {2})을 검색합니다. 우리는 4 자리를 먼저, 그리고 2 자리 만에만 찾으십시오. 우리가 다른 방법으로 글을 쓰면, 처음 2 자리 숫자 만 몇 년 동안 선택됩니다. 첫 번째 조건이 교대 상태에 있거나 구조물이 일치하면 나머지 조건이 점검되지 않기 때문입니다.

1-Jan-21 또는 01-Jan-2021과 같은 날짜를 검색하려면 패턴은 다음과 같습니다. \ d {1,2}-[a-za-z] {3}-\ d {2,4}

1 또는 2 자리 그룹의 그룹을 검색 한 다음 하이픈을 검색 한 다음 3 개의 대문자 또는 소문자 그룹, 하이픈, 4 자리 또는 2 자리 그룹이 뒤 따릅니다.

두 패턴을 결합한 후 다음과 같은 성과를 얻습니다.

패턴 : \ b \ d {1,2} [\/-] (\ d {1,2} | [a-za-z] {3}) [\/-] (\ d {4} | \ d {2}) \ b

어디:

  • 첫 번째 부분은 1 ~ 2 자리입니다. \ d {1,2}
  • 두 번째 부분은 1 또는 2 자리 또는 3 글자입니다. (\ d {1,2} | [a-za-z] {3})
  • 세 번째 부분은 4 자리 또는 2 자리의 그룹입니다. (\ d {4} | \ d {2})
  • Delimiter는 전방 슬래시 또는 하이픈입니다 : [\/-]
  • 단어 경계 \ b는 날짜가 더 큰 문자열의 일부가 아니라 별도의 단어임을 분명히하기 위해 양쪽에 배치됩니다.

아래 이미지에서 볼 수 있듯이 날짜를 성공적으로 끌어 내고 11/22/333과 같은 하위 문자열을 제거합니다. 그러나 여전히 잘못된 긍정적 인 결과를 반환합니다. 우리의 경우, A9의 서브 스트링 11-ABC-2222는 기술적으로 날짜 형식 DD-MMM-YYYY 와 일치하므로 추출됩니다.

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

잘못된 양성을 제거하려면 [a-za-z] {3} 부분을 전체 3 글체 월 약어 목록으로 바꿀 수 있습니다.

패턴 : \ b \ d {1,2} [\/-] (\ d {1,2} | (1 월 | 2 월 | Mar | apr | 5 월 | Jun | JUL | AUG | SEP | OCT | NOV | DEC)) [\ D {4} | \ d {2}) \ b

문자 사건을 무시하기 위해 사용자 지정 기능의 마지막 인수를 False로 설정했습니다.

=RegExpExtract(A5, $A$2, 1, FALSE)

그리고 이번에는 완벽한 결과를 얻습니다.

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

문자열에서 시간을 추출하기 위해 리그 즈

HH : MM 또는 HH : MM : SS 형식에서 시간을 얻으려면 다음 표현식이 처리됩니다.

패턴 : \ b (0? [0-9] | 1 [0-2]) : [0-5] \ d (: [0-5] \ d)? \ s?

이 regex를 분해하면 | 그것은 OR 논리를 가능하게합니다. 다시 말해, 우리는 아래 표현 중 하나와 일치하는 서브 스트링을 검색합니다.

표현 1 : \ b (0? [0-9] | 1 [0-2]) : [0-5] \ d (: [0-5] \ d)? \ s? (am | pm) \ b

AM/PM으로 시간을 검색합니다.

시간은 0에서 12 사이의 숫자가 될 수 있습니다. 얻기 위해서는 OR 구성 ([0-9] | 1 [0-2])를 사용합니다.

  • [0-9]는 0에서 9까지의 숫자와 일치합니다
  • 1 [0-2]는 10에서 12까지의 숫자와 일치합니다

[0-5] \ d는 00에서 59 사이의 숫자입니다.

두 번째 (: [0-5] \ d)? 00에서 59까지의 숫자도 있습니까? 수량자는 시간 값에 초에 포함되거나 포함되지 않을 수 있으므로 0 또는 한 번의 발생을 의미합니다.

표현 2 : \ b ([0-9] | [0-1] \ d | 2 [0-3]) : [0-5] \ d (: [0-5] \ d)? (?! :)

오전/pm없이 시간을 추출합니다.

시간 부분은 0에서 32 사이의 숫자 일 수 있습니다. 그것을 얻기 위해, 다른 또는 구성 ([0-9] | [0-1] \ d | 2 [0-3])가 사용됩니다.

  • [0-9]는 0에서 9까지의 숫자와 일치합니다
  • [0-1] \ d는 00에서 19까지의 숫자와 일치합니다
  • 2 [0-3]는 20에서 23까지의 숫자와 일치합니다

두 번째 부분은 위의 표현 1과 동일합니다.

20:30:80과 같은 문자열을 건너 뛰기 위해 부정적인 Lookahead (?! :)가 추가됩니다.

PM/AM은 대문자 또는 소문자 일 수 있으므로 기능을 케이스에 민감하게 만듭니다.

=RegExpExtract(A5, $A$2, 1, FALSE)

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

바라건대, 위의 예는 Excel 워크 시트에서 정규 표현식을 사용하는 방법에 대한 아이디어를 제공했습니다. 불행히도, VBA에서 클래식 정규 표현의 모든 기능이 지원되는 것은 아닙니다. VBA Regexp로 작업을 수행 할 수없는 경우 훨씬 더 강력한 .NET Regex 기능에 대해 논의하는 다음 부분을 읽어 보시기 바랍니다.

excel에서 텍스트를 추출하기 위해 Custom .NET 기반 Regex 함수

모든 Excel 사용자가 작성할 수있는 VBA Regexp 기능과 달리 .NET Regex는 개발자의 영역입니다. Microsoft .NET Framework는 PERL 5와 호환되는 모든 기능을 갖춘 정규식 구문을 지원합니다.이 기사는 그러한 기능을 작성하는 방법을 알려주지 않습니다 (나는 프로그래머가 아니며 어떻게 해야하는지에 대한 아이디어가 조금 없습니다 :)

표준 .NET Regex 엔진에서 처리 한 4 가지 강력한 기능은 이미 개발자가 작성하고 Ultimate Suite에 포함되어 있습니다. 아래에서는 Excel에서 텍스트를 추출하도록 특별히 설계된 기능의 실질적인 사용을 보여줍니다.

팁. .NET REGEX 구문에 대한 자세한 내용은 .NET 정규식 언어를 참조하십시오.

정규 표현식을 사용하여 엑셀에서 문자열을 추출하는 방법

최신 버전의 Ultimate Suite가 설치되어 있다고 가정하면 정규 표현식을 사용하여 텍스트를 추출 하여이 두 단계로 요약됩니다.

  1. AbleBits 데이터 탭에서 텍스트 그룹의 Regex 도구를 클릭하십시오.

    Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

  2. Regex Tools Pane에서 소스 데이터를 선택하고 Regex 패턴을 입력 한 다음 추출 옵션을 선택하십시오. 결과를 값이 아닌 사용자 정의 함수로 얻으려면 삽입을 수식 확인란으로 선택하십시오. 완료되면 추출 버튼을 클릭하십시오.

    Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

결과는 원래 데이터 오른쪽의 새 열에 나타납니다.

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

ableBitsRegextract 구문

우리의 사용자 정의 기능에는 다음과 같은 구문이 있습니다.

ablebitsRegexExtract (참조, 일반_Expression)

어디:

  • 참조 (필수) - 소스 문자열을 포함하는 셀에 대한 참조.
  • 일반_Expression (필수) - 일치하는 정규 패턴.

중요한 메모! 이 기능은 Excel 설치를위한 Ultimate Suite가있는 기계에서만 작동합니다.

사용 메모

학습 곡선과 경험을 더 즐겁게하려면 다음과 같은 점에주의를 기울이십시오.

  1. 공식을 만들려면 REGEX 도구 또는 Excel의 기능 삽입 대화 상자를 사용하거나 셀에 전체 기능 이름을 입력 할 수 있습니다. 공식이 삽입되면 기본 공식과 같이 관리 (편집, 복사 또는 이동)를 관리 할 수 ​​있습니다.
  2. Regex Tools Pane에서 입력 한 패턴은 2 인수 로 이동합니다. 별도의 셀에서 정규 표현을 유지하는 것도 가능합니다. 이 경우 2 인수 에 대한 셀 참조 만 사용하십시오.
  3. 함수는 첫 번째 발견 된 일치를 추출합니다.
  4. 기본적으로 기능은 대소 문자에 민감합니다 . 사례에 민감하지 않은 일치하려면 (? i) 패턴을 사용하십시오.
  5. 일치를 찾을 수없는 경우 #N/A 오류가 반환됩니다.

두 문자 사이에서 문자열을 추출하는 동정인

두 문자 사이의 텍스트를 얻으려면 캡처 그룹 또는 룩 아라운드를 사용할 수 있습니다.

괄호 사이에서 텍스트를 추출하려고한다고 가정 해 봅시다. 캡처 그룹이 가장 쉬운 방법입니다.

패턴 1 : \ [(.*?) \]

긍정적 인 외관과 전망대로 결과는 정확히 동일합니다.

패턴 2 : (?

캡처 그룹 (.*?)이 첫 번째부터 첫 번째부터 두 괄호 사이에서 텍스트를 게으른 검색을 수행한다는 데 주목하십시오. 물음표가없는 캡처 그룹 (.*)은 탐욕스러운 검색을 수행하고 첫 번째부터 마지막까지 모든 것을 캡처합니다.

A2의 패턴을 사용하면 공식은 다음과 같습니다.

=AblebitsRegexExtract(A5, $A$2)

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

모든 경기를 얻는 방법

이미 언급했듯이 AbleBitsRegeXExtract 함수는 하나의 일치 만 추출 할 수 있습니다. 모든 경기를 얻으려면 앞에서 논의한 VBA 기능을 사용할 수 있습니다. 그러나 하나의 경고가 있습니다 -VBA Regexp는 캡처 그룹을 지원하지 않으므로 위의 패턴은 "경계"문자도 반환합니다.

=TEXTJOIN(" ", TRUE, RegExpExtract(A5, $A$2))

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

괄호를 제거하려면이 공식을 사용하여 빈 줄 ( "")으로 대체하십시오.

=SUBSTITUTE(SUBSTITUTE(TEXTJOIN(", ", TRUE, RegExpExtract(A5, $A$2)), "]", ""),"[","")

더 나은 가독성을 위해, 우리는 구분기를 위해 쉼표를 사용하고 있습니다.

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

두 줄 사이의 텍스트를 추출하는 데 도움이됩니다

두 문자 사이에서 텍스트를 꺼내기 위해 해결 한 접근 방식은 두 문자열 사이에서 텍스트를 추출하는 데 효과적입니다.

예를 들어, "테스트 1"과 "테스트 2"사이의 모든 것을 얻으려면 다음 정규 표현식을 사용하십시오.

패턴 : 테스트 1 (.*?) 테스트 2

완전한 공식은 다음과 같습니다.

=AblebitsRegexExtract(A5, "test 1(.*?)test 2")

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

URL에서 도메인을 추출하는 재석전

정규 표현식이 있더라도 URL에서 도메인 이름을 추출하는 것은 사소한 작업이 아닙니다. 트릭을 수행하는 핵심 요소는 캡처되지 않은 그룹입니다. 궁극적 인 목표에 따라 아래 Regexes 중 하나를 선택하십시오.

하위 도메인을 포함한 전체 도메인 이름을 얻으려면

패턴 : (? : https? \ : |^| \ s) \/\/(? : [a-za-z \ d \-\.] {2,255} \.)? [a-za-z \ d \-] {1,63} \.

서브 도메인없이 2 단계 도메인을 얻습니다

패턴 : (? : https? \ : |^| \ s) \/\/(? : [a-za-z \ d \-\.] {2,255} \.)? ([a-za-z \ d \-] {1,63} \.

이제 샘플 URL로 "https://www.mobile.ablebits.com"의 예에서 이러한 정규 표현이 어떻게 작동하는지 살펴 보겠습니다.

  • (? : https? \ : |^| \ s) - 캡처되지 않은 그룹. 그것은 일치하지만 다음 중 하나에 앞서있는 부분 문자열을 캡처하지 않습니다 : https, http, start of string (^), 공백 문자 (\ s). 마지막 두 항목은 "//google.com"과 같은 프로토콜 관련 URL을 처리하기 위해 포함되어 있습니다.
  • \/ \/ ​​- 두 개의 전방 슬래시 (각각은 전진 슬래시의 특별한 의미를 피하고 문자 그대로 해석하기 위해 백 슬래시가 앞서 있습니다).
  • (? : [a-za-z \ d \-\.] {2,255} \.)? -3 단계, 네 번째 수준 등을 식별하기위한 비과 캡처 그룹 (샘플 URL의 모바일 ) 도메인. 첫 번째 패턴에서는 더 큰 포획 그룹 내에 배치되어 이러한 모든 하위 도메인을 추출에 포함시킵니다. 하위 도메인의 길이는 2 ~ 255 자일 수 있으므로 {2,255} Quantifier입니다.
  • ([a - za-z \ d \ - ] {1,63} \. 두 번째 레벨 도메인의 최대 길이는 63 자입니다. 현재 존재하는 가장 긴 최상위 도메인에는 24자가 포함되어 있습니다.

A2에 정규 표현이 어떤 정규식에 입력되는지에 따라 아래 공식은 다른 결과를 낳습니다.

=AblebitsRegexExtract(A5, $A$2)

모든 하위 도메인과 함께 전체 도메인 이름을 추출하려면 재 조정 :

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

하위 도메인없이 2 단계 도메인을 추출하는 재연 :

Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)

이것이 정규 표현식을 사용하여 Excel에서 텍스트의 일부를 추출하는 방법입니다. 읽어 주셔서 감사합니다. 다음 주에 우리 블로그에서 뵙기를 기대합니다!

사용 가능한 다운로드

Excel Regex Extract 예제 (.xlsm 파일) Ultimate Suite Trial 버전 (.exe 파일)

위 내용은 Excel에서 문자열을 추출하는 동정인 (하나 또는 모두 일치)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Excel의 중간 공식 - 실제 예Excel의 중간 공식 - 실제 예Apr 11, 2025 pm 12:08 PM

이 튜토리얼은 중간 기능을 사용하여 Excel에서 수치 데이터의 중앙값을 계산하는 방법을 설명합니다. 중앙 경향의 주요 척도 인 중앙값은 데이터 세트의 중간 값을 식별하여 Central Tenden의보다 강력한 표현을 제공합니다.

Google 스프레드 시트 Countif 기능은 공식 예제와 함께합니다Google 스프레드 시트 Countif 기능은 공식 예제와 함께합니다Apr 11, 2025 pm 12:03 PM

마스터 Google Sheets Countif : 포괄적 인 가이드 이 안내서는 Google 시트의 다목적 카운티프 기능을 탐색하여 간단한 셀 카운팅 이외의 응용 프로그램을 보여줍니다. 우리는 정확하고 부분적인 경기에서 Han에 이르기까지 다양한 시나리오를 다룰 것입니다.

Excel 공유 통합 문서 : 여러 사용자를위한 Excel 파일을 공유하는 방법Excel 공유 통합 문서 : 여러 사용자를위한 Excel 파일을 공유하는 방법Apr 11, 2025 am 11:58 AM

이 튜토리얼은 다양한 방법, 액세스 제어 및 갈등 해결을 다루는 Excel 통합 문서 공유에 대한 포괄적 인 안내서를 제공합니다. Modern Excel 버전 (2010, 2013, 2016 및 이후) ​​협업 편집을 단순화하여 M에 대한 필요성을 제거합니다.

Excel을 JPG로 변환하는 방법 - 이미지 파일로 .xls 또는 .xlsx를 저장Excel을 JPG로 변환하는 방법 - 이미지 파일로 .xls 또는 .xlsx를 저장Apr 11, 2025 am 11:31 AM

이 자습서는 .xls 파일을 .jpg 이미지로 변환하는 다양한 방법을 탐색하여 내장 된 Windows 도구와 무료 온라인 변환기를 모두 포함합니다. 프레젠테이션을 만들거나 스프레드 시트 데이터를 단단히 공유하거나 문서를 디자인해야합니까? YO를 변환합니다

Excel 이름 및 명명 범위 : 공식에서 정의 및 사용 방법Excel 이름 및 명명 범위 : 공식에서 정의 및 사용 방법Apr 11, 2025 am 11:13 AM

이 튜토리얼은 Excel 이름의 기능을 명확히하고 셀, 범위, 상수 또는 공식의 이름을 정의하는 방법을 보여줍니다. 또한 정의 된 이름을 편집, 필터링 및 삭제하는 것도 다룹니다. Excel 이름은 엄청나게 유용하지만 종종 오버로입니다

표준 편차 Excel : 기능 및 공식 예제표준 편차 Excel : 기능 및 공식 예제Apr 11, 2025 am 11:01 AM

이 튜토리얼은 표준 편차와 평균의 표준 오차의 차이점을 명확히하여 표준 편차 계산을위한 최적의 Excel 함수를 안내합니다. 설명 통계에서 평균 및 표준 편차는 Intrinsi입니다.

Excel의 제곱근 : SQRT 기능 및 기타 방법Excel의 제곱근 : SQRT 기능 및 기타 방법Apr 11, 2025 am 10:34 AM

이 Excel 튜토리얼은 정사각형 뿌리와 Nth 뿌리를 계산하는 방법을 보여줍니다. 제곱근을 찾는 것은 일반적인 수학적 작동이며 Excel은 몇 가지 방법을 제공합니다. Excel에서 사각형 뿌리를 계산하는 방법 : SQRT 기능 사용 : the

Google Sheets Basics : Google 스프레드 시트에서 작업하는 방법을 배우십시오.Google Sheets Basics : Google 스프레드 시트에서 작업하는 방법을 배우십시오.Apr 11, 2025 am 10:23 AM

Google Sheets : 초보자 가이드의 힘을 잠금 해제하십시오 이 튜토리얼은 MS Excel에 대한 강력하고 다양한 대안 인 Google Sheets의 기본 사항을 소개합니다. 스프레드 시트를 쉽게 관리하고, 주요 기능을 활용하며, 협업하는 방법에 대해 알아보십시오.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전