다음: 문자열 바꾸어 계산하기, 이전: 문자열 비교, 상위 문서: 문자열   [차례][찾아보기]


5.5 문자열 다루기

옥타브는 문자열을 조작하는 광범위한 함수를 제공합니다. 문자열은 단순히 행렬이기 때문에 간단한 조작은 표준 연산자만으로도 가능합니다. 아래 예시는 공백 문자를 모두 밑줄로 바꾸는 방법을 보여줍니다.

quote = ...
  "First things first, but not necessarily in that order";
quote( quote == " " ) = "_"
⇒ quote =
    First_things_first,_but_not_necessarily_in_that_order

검색, 바꾸기, 일반적인 정규 표현식 같은 복잡한 조작은 옥타브에 있는 아래 함수를 사용하여야 합니다.

deblank (s)

s의 후행 공백과 빈 문자를 제거합니다.

s가 행렬이면, deblank은 가장 긴 문자열 길이로 각 행을 맞춥니다. s가 낱칸 배열이면 각 문자열 원소에 개별적으로 적용됩니다.

예시:

deblank ("    abc  ")
     ⇒  "    abc"

deblank ([" abc   "; "   def   "])
     ⇒  [" abc  " ; "   def"]

같이 보기: strtrim.

strtrim (s)

s의 전행 공백과 후행 공백을 제거합니다.

s가 행렬이면, deblank은 가장 긴 문자열 길이로 각 행을 맞춥니다. s가 낱칸 배열이면 각 문자열 원소에 개별적으로 적용됩니다.

예시:

strtrim ("    abc  ")
     ⇒  "abc"

strtrim ([" abc   "; "   def   "])
     ⇒  ["abc  "  ; "  def"]

같이 보기: deblank.

strtrunc (s, n)

문자열 s을 길이 n에 맞춰 자릅니다.

s가 문자 행렬이면 열 개수가 조정됩니다.

s가 낱칸 배열이면 명령이 각 낱칸 원소 모두에 적용되고 새 낱칸 배열이 반환됩니다.

findstr (s, t)
findstr (s, t, 겹치기)

이 함수는 구식입니다. 대신 strfind을 사용하십시오.

st 중  긴 문자열에서 짧은 문자열을 찾아, 찾은 위치의 변위를 반환합니다.

선택 매개변수 겹치기가 참(기본)이면, 겹친 위치를 포함하여 찾습니다.
예시:

findstr ("ababab", "a")
     ⇒ [1, 3, 5];
findstr ("abababa", "aba", 0)
     ⇒ [1, 5]

주의: findstr는 구식입니다. 완전히 새로이 개발한 strfind을 사용하십시오.

같이 보기: strfind, strmatch, strcmp, strncmp, strcmpi, strncmpi, find.

색인 = strchr (문자열, 문자)
색인 = strchr (문자열, 문자, n)
색인 = strchr (문자열, 문자, n, 방향)
[i, j] = strchr (…)

문자열 문자열에서 지정한 문자가 나오는 곳을 찾습니다.

반환값과 n, 방향find에서와 동일하게 기능합니다.

대부분의 경우에 정규 표현식보다 빠릅니다.

같이 보기: find.

index (s, t)
index (s, t, 방향)

문자열 s에서 문자열 t가 처음 등장하는 위치를 반환하고, 문자열을 찾지 못하면 0을 반환합니다.

s으로 문자열 배열이나 문자열 낱칸 배열이 가능합니다.

예시:

index ("Teststring", "t")
    ⇒ 4

방향"first"이면 첫 번째로 발견한 원소를 반환합니다. 방향"last"이면 마지막으로 발견한 원소를 반환합니다.

같이 보기: find, rindex.

rindex (s, t)

문자열 s에서 문자열 t가 마지막으로 등장하는 위치를 반환하고, 문자열을 찾지 못하면 0을 반환합니다.

s으로 문자열 배열이나 낱칸 배열인 문자열이 가능합니다.

예시:

rindex ("Teststring", "t")
     ⇒ 6

rindex 함수는 방향"last"로 지정한 index와 같습니다.

같이 보기: find, index.

색인 = strfind (문자열, 양상)
색인 = strfind (낱칸_문자열, 양상)
색인 = strfind (…, "overlaps", )

문자열 문자열에서 양상을 찾고, 찾은 문자열의 시작 지점을 담은 벡터 색인을 반환합니다.

찾지 못하거나 양상문자열보다 길거나 양상이 비었으면, 색인은 빈 배열이 됩니다.

선택 매개변수 "overlaps"문자열의 모든 지점에서 양상을 찾을지(참), 겹치지 않는 온전한 양상만 찾을지(거짓) 결정합니다. 기본 값은 참입니다.

낱칸 문자열 낱칸_문자열이 지정되면, 색인은 위에 서술한 대로 작동하되 낱칸 배열로 된 벡터가 됩니다.

예시:

strfind ("abababa", "aba")
     ⇒ [1, 3, 5]

strfind ("abababa", "aba", "overlaps", false)
     ⇒ [1, 5]

strfind ({"abababa", "bebebe", "ab"}, "aba")
     ⇒
        {
          [1,1] =

             1   3   5

          [1,2] = [](1x0)
          [1,3] = [](1x0)
        }

같이 보기: regexp, regexpi, find.

문자열 = strjoin (낱칸_배열인_문자열)
문자열 = strjoin (낱칸_배열인_문자열, 구분자)

낱칸 문자열 배열인 낱칸_배열인_문자열의 원소를 합쳐 문자열 하나로 만듭니다.

구분자를 지정하지 않으면, 낱칸_배열인_문자열의 원소는 띄어쓰기로 구분됩니다.

구분자가 문자열로 지정되면, 지정한 문자열을 사용하여 낱칸 문자열 배열을 합칩니다. 제어 문자 사용이 가능합니다.

구분자낱칸_문자열_배열보다 짧은 하나짜리 낱칸 문자열 배열이면, 낱칸_문자열_배열의 원소에 구분자인 낱칸 문자열 배열을 사이에 끼워 넣어 합칩니다. 제어 문자는 지원되지 않습니다.

strjoin ({'Octave','Scilab','Lush','Yorick'}, '*')
      ⇒ 'Octave*Scilab*Lush*Yorick'

같이 보기: strsplit.

strmatch (s, A)
strmatch (s, A, "exact")

이 함수는 구식입니다. 대신 strncmp이나 strcmp를 사용하십시오.

A에서 문자열 s로 시작하는 모든 곳을 찾습니다.

두 번째 매개변수 A는 반드시 문자열, 문자 행렬, 낱칸 배열인 문자열 중 하나이어야 합니다.

세 번째 매개변수인 "exact"를 지정하지 않으면, ss의 길이만큼만 A에서 검색합니다. sA 내 후행 공백과 빈 문자는 검색시에 무시됩니다.

예시:

strmatch ("apple", "apple juice")
     ⇒ 1

strmatch ("apple", ["apple  "; "apple juice"; "an apple"])
     ⇒ [1; 2]

strmatch ("apple", ["apple  "; "apple juice"; "an apple"], "exact")
     ⇒ [1]

주의: strmatch는 구식입니다. 완전히 새로운 strncmp(일반 경우)이나 strcmp("exact" 경우)를 사용하십시오. 이외 교체 기능에는 무른모에 의존하는 regexpvalidatestring이 있습니다.

같이 보기: strncmp, strcmp, regexp, strfind, validatestring.

[마름, 자투리] = strtok (문자열)
[마름, 자투리] = strtok (문자열, 구분자)

문자열 문자열문자열에서 가장 처음에 찾은 문자열 구분자의 첫 글자에서 자릅니다.

문자열에 낱칸 배열인 문자열도 가능하며, 이 경우에는 함수가 각 낱칸 모두에 적용되고, 마름과 자투리를 담은 낱칸 배열를 반환합니다.

문자열 첫머리의 구분자는 무시합니다. 구분자를 지정하지 않으면, 공백 문자를 사용합니다.

요청하는 경우에 한하여, 자투리에는 구분자로 시작하는 자르고 남은 문자열이 들어갑니다.

예시:

strtok ("this is the life")
     ⇒ "this"

[tok, rem] = strtok ("14*27+31", "+-*/")
     ⇒
        tok = 14
        rem = *27+31

같이 보기: index, strsplit, strchr, isspace.

[낱칸_배열인_문자열] = strsplit (문자열)
[낱칸_배열인_문자열] = strsplit (문자열, 구분자)
[낱칸_배열인_문자열] = strsplit (…, 이름, )
[낱칸_배열인_문자열, 일치] = strsplit (…)

문자열 문자열구분자에 지정한 대로 쪼갠 부분열의 낱칸 문자열 배열을 반환합니다.

구분자를 지정하지 않으면, 문자열을 공백{" ", "\f", "\n", "\r", "\t", "\v"}으로 쪼갭니다. 아니면 구분자 구분자는 반드시 문자열이나 낱칸 배열인 문자열로 지정하여야 합니다. 기본적으로 매개한 문자열 s에서 구분자가 연속하면 구분자 한 개로 취급되어 한 번만 쪼개집니다.

지원하는 이름/값 쌍 매개변수는 다음과 같습니다.

선택 출력 매개변수인 일치는 원본 문자열에서 일치하는 구분자를 반환합니다.

단순 구분자 예시입니다.

strsplit ("a b c")
      ⇒
          {
            [1,1] = a
            [1,2] = b
            [1,3] = c
          }

strsplit ("a,b,c", ",")
      ⇒
          {
            [1,1] = a
            [1,2] = b
            [1,3] = c
          }

strsplit ("a foo b,bar c", {" ", ",", "foo", "bar"})
      ⇒
          {
            [1,1] = a
            [1,2] = b
            [1,3] = c
          }

strsplit ("a,,b, c", {",", " "}, "collapsedelimiters", false)
      ⇒
          {
            [1,1] = a
            [1,2] =
            [1,3] = b
            [1,4] =
            [1,5] = c
          }

정규 표현식 구분자 예시입니다.

strsplit ("a foo b,bar c", ',|\s|foo|bar', ...
          "delimitertype", "regularexpression")
⇒
{
            [1,1] = a
            [1,2] = b
            [1,3] = c
}

strsplit ("a,,b, c", '[, ]', "collapsedelimiters", false, ...
          "delimitertype", "regularexpression")
⇒
{
            [1,1] = a
            [1,2] =
            [1,3] = b
            [1,4] =
            [1,5] = c
}

strsplit ("a,\t,b, c", {',', '\s'}, "delimitertype", "regularexpression")
⇒
{
            [1,1] = a
            [1,2] = b
            [1,3] = c
}

strsplit ("a,\t,b, c", {',', ' ', '\t'}, "collapsedelimiters", false)
⇒
{
            [1,1] = a
            [1,2] =
            [1,3] =
            [1,4] = b
            [1,5] =
            [1,6] = c
}

같이 보기: ostrsplit, strjoin, strtok, regexp.

[낱칸_배열인_문자열] = ostrsplit (s, 분리자)
[낱칸_배열인_문자열] = ostrsplit (s, 분리자, 공백_제거)

문자열 s분리자로 쪼개고,  낱칸 배열인 문자열을 반환합니다.

연속한 분리자와 경계에 있는 분리자는, 공백_제거가 거짓이면 빈 문자열로 반환합니다. 공백_제거의 기본 값은 거짓입니다.

2차원 문자 배열은 구분자와 기존 쌍점 경계로 쪼갭니다.

예시:

ostrsplit ("a,b,c", ",")
      ⇒
          {
            [1,1] = a
            [1,2] = b
            [1,3] = c
          }

ostrsplit (["a,b" ; "cde"], ",")
      ⇒
          {
            [1,1] = a
            [1,2] = b
            [1,3] = cde
          }

같이 보기: strsplit, strtok.

[a, …] = strread (문자열)
[a, …] = strread (문자열, )
[a, …] = strread (문자열, , 틀_반복)
[a, …] = strread (문자열, , prop1, 값1, …)
[a, …] = strread (문자열, , 틀_반복, prop1, 값1, …)

이 함수는 구식입니다. 대신 textscan을 사용하십시오.

문자열에서 자료를 읽습니다.

문자열을 규제자 에 반복 일치하는 단어 단위로 쪼갭니다. 첫 번째 단어는 첫 번째 규제자에 일치하고, 두 번째 단어는 두 번째 규제자에 일치하는 방식입니다.  규제자에 비해 단어가 많으면 모든 단어가 처리될 때까지 작업이 반복됩니다.

문자열 문자열 내 단어를 어떻게 해석할지 기술합니다. 은 아래 규제자를 포함할 수 있습니다.

%s

단어를 문자열로써 분석합니다.

%f
%n

단어를 숫자로써 분석하고, 배정도로 바꿉니다.

%d
%u

단어를 숫자로써 분석하고, int32로 바꿉니다.

%*
%*f
%*s

건너뛸 단어입니다.

%s, %d, %f, %n, %u와 연관한 %*s 등등의 규제자는 %Ns 방식으로 자리수를 지정할 수 있습니다. N은 1보다 큰 정수입니다. %f는 %N.Mf 방식도 가능합니다.

literals

추가로, 틀에 문자 상수가 있음을 나타냅니다. 읽는 중에 무시합니다.

첫 번째 규제자로 분석한 단어는 첫 번째 출력되는 방식입니다.

기본적으로, "%f"문자열에서 숫자를 읽는다는 뜻입니다. 문자열에 숫자 구역만 있을 경우에 작동합니다.

예를 들어, 문자열

문자열 = "\
Bunny Bugs   5.5\n\
Duck Daffy  -7.5e-5\n\
Penguin Tux   6"

은 아래를 사용하여 읽을 수 있습니다.

[a, b, c] = strread (문자열, "%s %s %f");

선택 숫자 매개변수 틀_반복은 읽을 항목 개수를 제한하는 데에 사용합니다.

-1

(기본) 문자열을 끝까지 전부 읽습니다.

N

N 번 nargout 항목을 읽습니다. 0 (zero)도 양식_반복에서 허용합니다.

strread의 방식은 속성 값 쌍으로 바뀔 수 있습니다. 아래 자산이 가능합니다.

"commentstyle"

문자열 부분을 주석으로 판단하고 건너 뜁니다. 은 주석 서식이고 아래 항목이 모두 가능합니다.

  • "shell" # 문자부터 가장 가까운 줄 끝까지의 모든 내용을 건너 뜁니다.
  • "c" /**/ 사이의 모든 내용을 건너 뜁니다.
  • "c++" // 문자부터 가장 가까운 줄 끝까지의 모든 내용을 건너 뜁니다.
  • "matlab" % 문자부터 가장 가까운 줄 끝까지의 모든 내용을 건너 뜁니다.
  • 사용자가 지정합니다. 두 가지 방법이 있습니다. (1) 문자열 하나 또는 1x1짜리 문자열 낱칸 배열: 지정한 문자열 오른쪽 내요을 모든 내용을 건너 뜁니다. (2) 2x1짜리 문자열 낱칸 배열: 문자열 사이에 있는 모든 내용을 건너 뜁니다.
"delimiter"

으로 지정한 모든 문자를 문자열을 단어로 쪼개는 데에 사용합니다.(기본 값은 모든 공백 문자) "%s" 양식 규제자를 사용하지 않으면 규제자 문자 모음에 공백이 암묵적으로 포함됨을 유의하십시오. 관련한 정보는 아래 "whitespace" 매개변수를 보십시오. 규제자 문자 모음이 없을 수 없습니다. 규제자 문자 모음을 지정하지 않으면 띄어쓰기를 규제자로 사용합니다.

"emptyvalue"

공백이 아닌 규제된 자료 내 빈 숫자 값을 반환하는 값입니다. 기본 값은 NaN입니다. NaN을 지원하지 않는 자료형(int32 등)에는 0이 기본 값으로 사용됩니다.

"multipledelimsasone"

연속한 규제자 직렬을 단일 규제자로써의 사이에 있는 공백을 무시한 채 다룹니다. 연속한 규제자 직렬은 수직 "aligned"이 필요하지 않습니다.

"treatasempty"

내 문자열의 단일 발견(규제자나 공백 사이)을 결측값으로 다룹니다.

"returnonerror"

이 참(1, 기본)이면 읽기 오류를 무시하고 보통 때처럼 반환합니다. 거짓(0)이면 오류를 반환합니다.

"whitespace"

 에 지정한 모든 문자는 공백으로 해석되어 잘립니다. 공백을 정의하는 문자열은 반드시 큰 따옴표로 묶어 "\t" 같이 특별 문자 만들어 처리가 제대로 되도록 해야 합니다. 각 자료란에서 다중으로 연속된 공백 문자는 공백 하나로 합쳐지고, 전행 후행 공백이 삭제됩니다. 기본 공백은 " \b\r\n\t"(띄어쓰기에 주의)입니다. 양식에 변환 구분자 "%s"가 있지 않으면, 공백이 구분자 문자에 언제나 더해집니다. 이 경우, "delimiter"에 명시한 공백만 규제자로 남고, 명시한 공백이 공백 문제 모음에서 제외됩니다. 공백 문자가 있는 그대로(예: 문자열) 유지되거나, 명백하게 "whitespace"에 대해 빈 값으로 지정되면(예: "") 공백은 더이상 구분자가 될 수 없습니다.

문자열 내 단어 개수가 여러 개인 양식 변환 규제자의 개수와 정확하게 맞지 않으면, strread는 문자열의 마지막 문자에 맞춰 작동합니다.

마지막 문자가 "\n"일 때

자료 열을 공란이나 NaN으로 맞춰 모든 열이 같은 길이가 되게 합니다.

마지막 문자가 "\n"이 아닐 때

자료 열을 맞추지 않습니다. strread가 들쭉날쭉한 길이의 열을 반환합니다.

같이 보기: textscan, sscanf.

_문자열= strrep (문자열, 양상, 대체)
_문자열= strrep (낱칸_문자열, 양상, 대체)
_문자열= strrep (…, "overlaps", )

문자열에서 찾은 양상을 모두 대체로 바꾸고, 그 결과를 반환합니다.

선택 매개변수 "overlaps"문자열에서 양상을 모두 찾을지(참), 겹치지 않게 온전하게 찾을지(거짓) 결정합니다. 기본은 참입니다.

s는 낱칸 배열인 문자열일 수 있으며, 이 경우에는 각 원소마다 바꿈 작업을 수행하고 낱칸 배열을 반환합니다.

예시:

strrep ("This is a test string", "is", "&%$")
    ⇒  "Th&%$ &%$ a test string"

같이 보기: regexprep, strfind.

newstr = erase (문자열, 양상)

문자열 내 모든 양상을 삭제합니다.

문자열양상에는 일반 문자열, 낱칸 배열인 문자열, 문자 배열이 가능합니다.

예시:

## string, single pattern
erase ("Hello World!", " World")
    ⇒ "Hello!"

## cellstr, single pattern
erase ({"Hello", "World!"}, "World")
    ⇒ {"Hello", "!"}

## string, multiple patterns
erase ("The Octave interpreter is fabulous", ...
       {"interpreter ", "The "})
    ⇒ "Octave is fabulous"

## cellstr, multiple patterns
erase ({"The ", "Octave interpreter ", "is fabulous"}, ...
       {"interpreter ", "The "})
    ⇒ {"", "Octave ", "is fabulous"}

풀그림 짜기 안내: 양상이 문자열에서 겹쳐 있으면 erase는 겹친 것 중 앞에 있는 내용만 삭제합니다. 예시입니다.

erase ("abababa", "aba")
    ⇒ "b"

겹친 내용도 처리하려면 strrep을 참고하십시오.

같이 보기: strrep, regexprep.

substr (s, 변위차)
substr (s, 변위차, 길이)

변위차 번째 문자부터 길이 만큼까지의 s의 부분열을 반환합니다.

변위차를 세는 글자 순서는 1부터 시작합니다. 변위차가 음수이면, 부분열 추출을 그만큼 문자열 끝에서 먼 곳에서 시작합니다.

길이를 지정하지 않으면, 부분열이 s의 끝에서 끝납니다. 길이가 음수이면 문자 순서를 문자열 끝에서부터 반대로 셉니다.

예시::

substr ("This is a test string", 6, 9)
     ⇒ "is a test"
substr ("This is a test string", -11)
     ⇒ "test string"
substr ("This is a test string", -11, -7)
     ⇒ "test"

이 함수는 펄에 있는 같은 함수를 본떴습니다.

[s, e, te, m, t, nm, sp] = regexp (문자열, 양상)
[…] = regexp (문자열, 양상, "선택지1", …)

정규 표현식으로 문자열을 검색합니다.

문자열에서 양상을 찾고, 찾은 내용의 위치와 부분열을 반환하고, 찾지 못하면 빈 값을 반환합니다.

찾는 양상은 아래를 포함한 모든 표준 정규 표현식 연산자를 포함할 수 있습니다.

.

모든 문자와 일치합니다.

* + ? {}

반복 연산자로써 아래와 같습니다.

*

0번 이상 일치합니다.

+

1 번 이상 일치합니다.

?

0 번이나 1 번 일치합니다.

{n}

정확하게 n 번 일치합니다.

{n,}

 n 번 이상 일치합니다.

{m,n}

 m 번 이상, n 번 이하만큼 일치합니다.

[…] [^…]

나열 연산자입니다. 양식이 "[""]" 사이에 있는 아무 문자와 일치합니다. 첫 번째 문자가 "^"이면,  양식이 부정되어 대괄호 사이에 있는 문자를 제외한 모든 문자와 일치합니다.

아래에서 정의된 제어 문자도 나열 연산자에서 사용 가능합니다. 예를 들어, 부동 소수점 숫자용 견본은 [-+.\d]+입니다.

() (?:)

집단 연산자입니다. 괄호만 있는 첫 번째 서식도 징표를 생성합니다.

|

선택 연산자입니다. 정규 표현식에서 하나라도 일치합니다. 모든 선택지를 반드시 위의 집단 연산자 ()로 함께 묶어야 합니다.

^ $

고정 연산자입니다. 문자열의 처음(^)과 끝($)을 의미합니다.

더불어서 아래 제어 문자는 특별한 의미가 있습니다.

\d

모든 숫자와 일치합니다.

\D

모든 숫자가 아닌 문자와 일치합니다.

\s

모든 공백 문자와 일치합니다.

\S

모든 공백이 아닌 문자와 일치합니다.

\w

모든 단어 문자와 일치합니다.

\W

모든 단어가 아닌 문자와 일치합니다.

\<

단어의 시작과 일치합니다.

\>

단어의 끝과 일치합니다.

\B

단어 경계와 일치합니다.

실행 안내: 매트랩과의 호환을 위해 양상 내 제어 문자(예: "\n" => 새 줄)가 양상이 작은 따옴표로 정의되었어도 기능하도록 확장되었습니다. 이 확장을 사용하지 않으려면 제어 문자에 왼빗금을 두 번 치거나(예: "\\n") regexptranslate 함수를 사용하십시오.

regexp의 출력은 기본적으로 아래 순서대로 입니다.

s

일치한 부분열 각각의 시작 부분입니다.

e

일치한 부분열 각각의 끝 부분입니다.

te

양식에서 (…)에 둘러싸인 징표 각각의 크기입니다.

m

일치한 글월이 각각 있는 낱칸 배열입니다.

t

징표와 일치한 글월이 각각 있는 낱칸 배열입니다.

nm

공간 이름으로 사용되는, 일치하게 명명된 징표의 각 글월을 담은 구조입니다. 징표 명명은 (?<name>…)처럼 합니다.

sp

양상으로 문자열을 쪼갰을 때의 자스러기 같은, 일치로 반환되지 않은 글월의 낱칸 배열입니다.

특정한 출력 매개변수 또는 출력 매개변수 순서는 추가 매개변수 선택지로 선택합니다. 선택지는 문자열이고, 추력 매개변수와 선택 매개변수 사이에는 다음 연관이 있습니다.

'start's
'end'e
'tokenExtents'te
'match'm
'tokens't
'names'nm
'split'sp

아래는 추가 매개변수에 대한 요약입니다.

once

첫 번째로 발견한 양상만 반환합니다.

matchcase

일치를 찾을 때에 대소문자 구분을 합니다.(기본)

대용으로 양상에 (?-i)을 사용해도 됩니다.

ignorecase

양상을 문자열과 비교할 때에 대소문자 구분을 하지 않습니다.

대용으로 양상에 (?i)을 사용해도 됩니다.

stringanchors

문자열의 처음과 끝에서 고정 문자를 일치시킵니다.(기본)

대용으로 양상에 (?-m)을 사용해도 됩니다.

lineanchors

줄의 처음과 끝에서 고정 문자를 일치시킵니다.(기본)

대용으로 양상에 (?m)을 사용해도 됩니다.

dotall

양상 .이 새 줄 문자를 포함한 모든 문자와 일치합니다.(기본)

대용으로 양상에 (?s)을 사용해도 됩니다.

dotexceptnewline

양상 .이 새 줄 문자를 제외한 모든 문자와 일치합니다.

대용으로 양상에 (?-s)을 사용해도 됩니다.

literalspacing

양상에 있는 공백을 포함한 모든 문자를 중요하게 다루어 양상 일치에 사용합니다.(기본)

대용으로 양상에 (?-x)을 사용해도 됩니다.

freespacing

양상에 임의의 공백과 ‘#’ 문자로 시작하는 주석이 있음을 인정합니다.

대용으로 양상에 (?x)을 사용해도 됩니다.

noemptymatch

길이가 0인 일치는 반환하지 않습니다.(기본)

emptymatch

길이가 0인 일치를 반환합니다.

1번 위치와 줄 끝에 문자 'b'가 0개 이상 있어서 regexp ('a', 'b*', 'emptymatch')[1 2]를 반환합니다.

동전통 제한 안내: 양상 검색이 재귀 함수로 이루어지므로, 너무 많이 일치하면 풀그림 동전통이 넘칠 수 있습니다. 예를 들어,

regexp (repmat ('a', 1, 1e5), '(a)+')

는 간살짓기 오류가 발생합니다. 대안으로 일치 횟수를 줄이는 양상 검색을 사용하고(예: 채움수 모음의 창의적 사용) 반환된 변수를 여러 번 regexp 검색으로 처리(크기 줄이기)하면 좋습니다.

같이 보기: regexpi, strfind, regexprep.

[s, e, te, m, t, nm, sp] = regexpi (문자열, 양상)
[…] = regexpi (문자열, , "선택지1", …)

대소문자를 구분하는 문자열 일치 정규 표현식입니다.

문자열에 있는 양상을 찾고, 모든 일치의 위치와 그 부분열을 반환하거나, 찾지 못하면 빈 값을 반환합니다. 검색 양상 문법에 관한 자세한 사항은 regexp을 보십시오.

같이 보기: regexp.

력_문자열= regexprep (문자열, 양상, 대체_문자열)
력_문자열= regexprep (문자열, 양상, 대체_문자열, "선택지1", …)

Replace occurrences of pattern pat in 문자열 with repstr.
문자열에서 양상 양상대체_문자열로 바꾸어 넣습니다.

정규 표현식 양상에 관한 내용은 regexp에 있습니다. regexp를 보십시오.

대체 문자열은 일치 문자열 내 i번째 괄호 묶음을 대체하는  $i를 포함할 수 있습니다.

regexprep ("Bill Dunn", '(\w+) (\w+)', '$2, $1')

"Dunn, Bill"을 반환합니다.

regexp에 넣을 수 있는 추가 매개변수는 아래와 같습니다.

once

첫 번째로 발견한 양상만 결과에서 바꿉니다.

warnings

호환을 위해 존재하며, 무시됩니다.

실행 안내: 매트랩과의 호환을 위해 양상에 있는 제어 문자(예: 새 줄 문자 "\n")는 양상이 작은 따옴표로 정의되었을 때에도 확장되어 작동합니다. 이 확장을 사용하지 않으려면 제어 문자에 왼빗금을 두 번 긋던가(예: "\\n") regexptranslate 함수를 사용하십시오.

같이 보기: regexp, regexpi, strrep.

regexptranslate (선택지, s)

정규 표현식을 사용하여 문자열을 변환합니다.

만능 문자 바꾸기나 특별 제어 문자를 포함할 수 있습니다.

선택지를 아래 값으로 지정하여 처리 방식을 바꿉니다.

"wildcard"

만능 문자 ., *, ?는 정규 표현식에 적절한 만능 문자로  바뀝니다. 예시입니다.

regexptranslate ("wildcard", "*.m")
     ⇒ '.*\.m'
"escape"

정규 표현식에서 특별한 의미가 있는 $.?[] 문자가 제어 문자에서 제외되어 문자 그대로 다루어집니다. 예시입니다.

regexptranslate ("escape", "12.5")
     ⇒ '12\.5'

같이 보기: regexp, regexpi, regexprep.

untabify (t)
untabify (t, tw)
untabify (t, tw, 공백_제거)

t에 있는 징검 문자를 띄어쓰기로 바꿉니다.

입력 매개변수 t는 2차원 문자 배열이거나 문자 문자열인 낱칸 배열입니다. 입력 매개변수와 같은 분류로 출력됩니다.

징검 너비는 tw로 지정하면, 기본 값은 8입니다.

선택 매개변수 공백_제거가 참이면, 문자 자료 끝에 있는 띄어쓰기를 제거합니다.

아래 예시는 기록철을 읽고, 같은 내용이지만 징검 문자를 띄어쓰기로 바꾸고 후행 공백을 없앤 판본을 작성합니다.

fid = fopen ("tabbed_script.m");
text = char (fread (fid, "uchar")');
fclose (fid);
fid = fopen ("untabified_script.m", "w");
text = untabify (strsplit (text, "\n"), 8, true);
fprintf (fid, "%s\n", text{:});
fclose (fid);

같이 보기: strjust, strsplit, deblank.

색인 = unicode_idx (문자열)

문자열에서 UTF-8으로 부호환된 문자를 각각 색인한 배열을 반환합니다.

unicode_idx ("aäbc")
     ⇒ [1, 2, 2, 3, 4]

다음: 문자열 바꾸어 계산하기, 이전: 문자열 비교, 상위 문서: 문자열   [차례][찾아보기]