TODAY.2024.11.23
HOME
즐겨찾기추가
뉴스메인홈
정책/뉴스
한우/낙농
한돈
양계
기타가축
환경
오피니언
축산산업
정보광장
 
SSen's Recipe : 정규식으로 문자열 바꾸기│test7 2024-05-27 12:11:36

AS3.0이 등장하면서 여러모로 복잡해지고 피곤해진 ActionScript 이지만서도, 그만큼 빠른 성능과 새로운 기능들이란 장점을가져다 주었죠. 인생이 아름다워라~ 할 수 있도록 추가된 기능중에서 단연 돋보이는 규식이 입니다.

  

정규식이란?

영어로는 Regular expressions 라고 씁니다. 보통 RegEx 라고 줄여서 쓰곤 하죠. "정규 표현식" 이란 말의줄임말로 정규식이라고 쓰던데, 왜 정규 표현식인지는 저도 잘 모르겠습니다. 주된 기능은 문자열에서 패턴을 찾거나, 찾아서바꾸거나 하는 용도로서 사용됩니다.

  

머따 쓰는 물건?

그러니깐 간단한 사용례를 들자면 ABCDEFG 라는 문자열에서 CDE 를 찾아서 XYZ 로 바꾸고 싶을때 사용합니다. 정규식 치환을 사용해서 해당문자열을 바꾸면 ABCDEFG -> ABXYZFG 가 되겠죠.

  

ActionScript 의 정규식을 공부할때 참고자료들

일단 플래시에 내장된 ActionScript3.0 레퍼런스 만으로도 충분히 공부가 가능하지만, 좀 더 사용례를 정확히 알고싶거나, 여러가지 참고할만한 예제가 필요한 경우엔 Javascript 의 정규식을 찾아봐도 됩니다. Javascript 의정규식과 같은 구성을 가지고 있거든요.

  

규식이로 문자열을 바꿔BoA요.

 

뭐 일단 이렇게 하면 "가크크크크라마바사" 가 trace() 되게 됩니다.

  

간단하게 살펴보면

Test 라는 변수는 일단 String 타입을 가진 변수입니다. 문자열 이란거죠…

그리고 저기에 쓰인 replace 는 String 타입의 객체가 가질 수 있는 메서드 중에서 하나입니다.

레퍼런스를 열어보면

  .

  

Replace 메서드에 대해서 알아보자면 (pattern , repl) 로 되어있는데요.

첫번째 pattern 은 정규식 패턴을 넣어주면 되구요.

두번째 repl 엔 바꿔넣을 문자를 넣어주면 됩니다.

  

(/나다/ , "크크크크") 는 "나다" 라는 문자를 "크크크크" 로 바꿔주세요~ 라는 뜻이죠.

  

  

  

여러 개의 문자 바꾸기

요렇게 "나다" 가 여러 개 들어갔을때는

요렇게 정상적으로 출력됩니다.

/g 옵션은 global 이라는 뜻이라고 하네요…

  

저 같은 경우엔 딱히 정규식을 활용할 만한 일이 별로 없어서 걍 /g 옵션을 붙여서

문자열 바꾸기 기능으로 활용할 때가 많습니다.

아직 플래시에서는 딱히 쓸일을 찾을수가 없었구요.

Javascript에서 외부에서 불러온 HTML 구문중에 쓸데없는 size="16" 이란 것들이 전체적으로 잔뜩 붙어있다 했을때replace(/size=\\"16\\"/g , "") 라는 문구를 통해서 싸그리 없애주는거죠. PHP 에서 간단하게 처리할 수있는것이지만, 왠지 모르게 서버 리소스를 쓰기 보다는 클라이언트 리소스를 쓰고 싶은 심뽀 라고나 할까요… ㅡ ㄴ ㅡ;;; 내건아깝고, 보는 사람건 별로 안아깝더라구요…

  

뭐 하여튼… 잡소리고… 위처럼 해주면 전체적으로 문자열을 다 바꿀 수 있습니다.

  

  

좀 더 강력하게 문자열 바꿔보기

예를 들어서 이렇게 바꿔야 할 때가 있습니다. 태그 수정의 경우 "나다" 를 "나다크크크" 로 바꿔야 할 경우 말이죠.

"나다"+"크크크크" 로 원본 문자열을 활용한 채로 "크크크크" 를 덧붙여야 하는 경우인데요.

이 경우엔 아래처럼 처리 할 수 있습니다.

 

  

좀 더 복잡하게 들어가서 "나다라마" 나 "나돠라마" 를 "나다크크크마" 나 "나돠크크크마" 로 바꿔야 할 경우도 생깁니다. (예제처럼 괴상한 단어를 찾을일은 없겠지만요…)

  

그럴 경우엔 $& 의 단수 형태가 아닌, $1, $2 처럼 $n 의 형태로 찾을 수 있습니다.  

저 위에 있는 (\\S) 에서 \\S 는 "공백이 아닌 문자" 라는 뜻이구요.

() 괄호 같은 경우엔 여러 개의 정규식 패턴을 잡아내기 위해서 그룹화 해주는 것입니다.

첫번째 괄호는 $1 로 치환되고, 두번째 괄호는 $2 로 치환됩니다.

  

이런 타입의 경우가 바로 html 태그등을 수정할 때 유용하게 쓰입니다.
요렇게 모든 태그의 size 속성을 싸그리 지울수 있습니다. 주로, 반복작업이 많아서 일일히 수정하기 귀찮을때 사용합니다.

  

근데… 정규식이 점점 외계어가 되어가죠? 참… 이럴때 난감해지죠. 저도 처음에 토하는줄 알았습니다.

  

일단 위의 내용만 간단하게 설명드리자면

\\" 는 정규식안에 " 를 바로 쓸수 없기 때문에 (특수용도 문자로서 " 때문) 이건 특수용의 " 가 아닌, 문자로서의 " 다… 라는 뜻으로 앞에 \\를 붙여준 것입니다. 그래서 \\"\\" 는 정규식 패턴에서 "" 로 인식하게 되죠.

그리고, () 그룹 안에 있는 \\d 는 숫자를 의미하구요. {1,3} 은 반복을 의미합니다.

  

 

즉… \\d 는 1자리의 숫자를 이야기 하게 되고, \\d\\d 는 2자리의 숫자를 이야기 하게 됩니다.

즉… 이런 패턴 때문에 반복이 필요한데요.

  

{3} 는 세번 반복된 즉… \\d{3} 은 001~999 까지의 숫자열을 찾고,

{3,} 는 세번 이상 반복된 즉… \\d{3,} 는 001~999 이상의 숫자열을 찾고,

{1~3} 은 한번 반복부터, 세번 반복까지… 즉… 1~999 까지의 숫자열을 찾게 됩니다.

  

점점 아스트랄 해지죠?

  

정규식을 공부하다 보며 "내 마음은 안드로메다로~" 라는 노래가 입안에서 마구 울려퍼지게 됩니다. 정규식은 꽤 어려운 내용중에서하나이기 때문에 익숙해지려면 많은 공부가 필요하거든요. 주로 UI 적인 이슈를 다루기 때문에 문자열 데이터 가공을 직접적으로다룰일이 별로 없는 클라이언트 스크립트 쪽에서야 별 쓰잘데기 없는 내용이기도 하지만, PHP 같은 쪽 커뮤니티에 들어가면 이게삼각함수처럼 그쪽 사람들의 머리를 쪼개는 역할을 하곤 합니다. 그러니깐… 어려운 내용이라구요… 굉장히…;;;

  

  

좀 더 자세한 내용은 알아서...

이이상 깊게 들어가봤자 지루해지기만 할테고, 공부할 사람들은 레퍼런스 뒤지면서 알아서 열심히 공부할테니 더 이상의 내용은 적지않겠습니다. 원래 시작할땐 단순 문자열 치환인 /나다/ 까지만 하려고 했는데, 몇가지 사족을 덧붙였네요. (내가 몰라서 안쓰는게아니야! ~ㅜ ㅁ ㅜ~ 진짜라니깐!)

  

정규식이 어디에 쓰일수 있을까? 를 생각하면 좀 머리 아파지는 문제이기도 하지만, 만일 개발자가 CodeHighlighter 같은기능이나, 플래시로 TextEditor, 불량단어 필터링 같은걸 만든다고 생각했을때는 replace 에 좀 더 세밀한 조정이필요하기 때문에 알아둬야 하는 내용입니다. 사실… 보통 UI 나 컨텐츠를 만들때는 별 의미 없어요… ' ㅡ 'a (라고 생각하는1)

  

뭐좀 더 자세한 내용은 굉장히 피곤하게 적혀있긴 하지만, (잘 정리가 안되어서 공부하기 피곤한) AS3.0 레퍼런스를 보시던가,아니면, AS3.0 에서 사용하는 정규식과 같은 방식인 Javascript 의 정규식을 검색해서 찾아보시던가 하시면 될것같습니다.

추천 답변 수정 삭제
HTML 특수문자코드표│test7 2024-05-27 12:11:36

HTML 특수문자코드표

 

표현문자

숫자표현

문자표현

설명

-

�-

-

사용하지 않음

space

	

-

수평탭

space




-

줄 삽입

-

-

-

사용하지 않음

space

 

-

여백

!

!

-

느낌표

"

"

"

따옴표

#

#

-

숫자기호

$

$

-

달러

%

%

-

백분율 기호

&

&

&

Ampersand

'

'

-

작은 따옴표

(

(

-

왼쪽 괄호

)

)

-

오른쪽 괄호

*

*

-

아스트릭

+

+

-

더하기 기호

,

,

-

쉼표

-

-

-

Hyphen

.

.

-

마침표

/

/

-

Solidus (slash)

0 - 9

0-9

-

0부터 9까지

:

:

-

콜론

;

&#59;

-

세미콜론

<

&#60;

&lt;

보다 작은

=

&#61;

-

등호

>

&#62;

&gt;

보다 큰

?

&#63;

-

물음표

@

&#64;

-

Commercial at

A - Z

&#65;-&#90;

-

A부터 Z까지

[

&#91;

-

왼쪽 대괄호

\

&#92;

-

역슬래쉬

]

&#93;

-

오른쪽 대괄호

^

&#94;

-

탈자부호

_

&#95;

-

수평선

`

&#96;

-

Acute accent

a - z

&#97;-&#122;

-

a부터 z까지

{

&#123;

-

왼쪽 중괄호

|

&#124;

-

수직선

}

&#125;

-

오른쪽 중괄호

~

&#126;

-

꼬리표

-

&#127;-&#159;

-

사용하지 않음

 

&#160;

&nbsp;

Non-breaking space

¡

&#161;

&iexcl;

거꾸로된 느낌표

&#162;

&cent;

센트 기호

&#163;

&pound;

파운드

¤

&#164;

&curren;

현재 환율

&#165;

&yen;

|

&#166;

&brvbar;

끊어진 수직선

§

&#167;

&sect;

섹션 기호

¨

&#168;

&uml;

움라우트

&#169;

&copy;

저작권

ª

&#170;

&ordf;

Feminine ordinal

&#171;

&laquo;

왼쪽 꺾인 괄호

&#172;

&not;

부정

­

&#173;

&shy;

Soft hyphen

?

&#174;

&reg;

등록상표

&hibar;

&#175;

&macr;

Macron accent

°

&#176;

&deg;

Degree sign

±

&#177;

&plusmn;

Plus or minus

²

&#178;

&sup2;

Superscript two

³

&#179;

&sup3;

Superscript three

´

&#180;

&acute;

Acute accent

μ

&#181;

&micro;

Micro sign (Mu)

&#182;

&para;

문단기호

·

&#183;

&middot;

Middle dot

¸

&#184;

&cedil;

Cedilla

¹

&#185;

&sup1;

Superscript one

º

&#186;

&ordm;

Masculine ordinal

&#187;

&raquo;

오른쪽 꺾인 괄호

¼

&#188;

&frac14;

4분의 1

½

&#189;

&frac12;

2분의 1

¾

&#190;

&frac34;

4분의 3

¿

&#191;

&iquest;

거꾸로된 물음표

A

&#192;

&Agrave;

Capital A, grave accent

A

&#193;

&Aacute;

Capital A, acute accent

A

&#194;

&Acirc;

Capital A, circumflex accent

A

&#195;

&Atilde;

Capital A, tilde

A

&#196;

&Auml;

Capital A, dieresis or umlaut mark

A

&#197;

&Aring;

Capital A, ring (Angstrom)

Æ

&#198;

&AElig;

Capital AE diphthong (ligature)

C

&#199;

&Ccedil;

Capital C, cedilla

E

&#200;

&Egrave;

Capital E, grave accent

E

&#201;

&Eacute;

Capital E, acute accent

E

&#202;

&Ecirc;

Capital E, circumflex accent

E

&#203;

&Euml;

Capital E, dieresis or umlaut mark

I

&#204;

&Igrave;

Capital I, grave accent

I

&#205;

&Iacute;

Capital I, acute accent

I

&#206;

&Icirc;

Capital I, circumflex accent

I

&#207;

&Iuml;

Capital I, dieresis or umlaut mark

Ð

&#208;

&ETH;

Capital Eth, Icelandic

N

&#209;

&Ntilde;

Capital N, tilde

O

&#210;

&Ograve;

Capital O, grave accent

O

&#211;

&Oacute;

Capital O, acute accent

O

&#212;

&Ocirc;

Capital O, circumflex accent

O

&#213;

&Otilde;

Capital O, tilde

O

&#214;

&Ouml;

Capital O, dieresis or umlaut mark

×

&#215;

&times;

Multiply sign

Ø

&#216;

&Oslash;

width="130"Capital O, slash

U

&#217;

&Ugrave;

Capital U, grave accent

U

&#218;

&Uacute;

Capital U, acute accent

U

&#219;

&Ucirc;

Capital U, circumflex accent

U

&#220;

&Uuml;

Capital U, dieresis or umlaut mark

Y

&#221;

&Yacute;

Capital Y, acute accent

Þ

&#222;

&THORN;

Capital Thorn, Icelandic

ß

&#223;

&szlig;

Small sharp s, German (sz ligature)

a

&#224;

&agrave;

Small a, grave accent

a

&#225;

&aacute;

Small a, acute accent

a

&#226;

&acirc;

Small a, circumflex accent

a

&#227;

&atilde;

Small a, tilde

a

&#228;

&auml;

Small a, dieresis or umlaut mark

a

&#229;

&aring;

Small a, ring

æ

&#230;

&aelig;

Small ae diphthong (ligature)

c

&#231;

&ccedil;

Small c, cedilla

e

&#232;

&egrave;

Small e, grave accent

e

&#233;

&eacute;

Small e, acute accent

e

&#234;

&ecirc;

Small e, circumflex accent

e

&#235;

&euml;

Small e, dieresis or umlaut mark

i

&#236;

&igrave;

Small i, grave accent

i

&#237;

&iacute;

Small i, acute accent

i

&#238;

&icirc;

Small i, circumflex accent

i

&#239;

&iuml;

Small i, dieresis or umlaut mark

ð

&#240;

&eth;

Small eth, Icelandic

n

&#241;

&ntilde;

Small n, tilde

o

&#242;

&ograve;

Small o, grave accent

o

&#243;

&oacute;

Small o, acute accent

o

&#244;

&ocirc;

Small o, circumflex accent

o

&#245;

&otilde;

Small o, tilde

o

&#246;

&ouml;

Small o, dieresis or umlaut mark

÷

&#247;

&divide;

Division sign

ø

&#248;

&oslash;

Small o, slash

u

&#249;

&ugrave;

Small u, grave accent

u

&#250;

&uacute;

Small u, acute accent

u

&#251;

&ucirc;

Small u, circumflex accent

u

&#252;

&uuml;

Small u, dieresis or umlaut mark

y

&#253;

&yacute;

Small y, acute accent

þ

&#254;

&thorn;

Small thorn, Icelandic

y

&#255;

&yuml;

Small y, dieresis or umlaut mark

추천 답변 수정 삭제
()
뉴스작성 설정
category
정책/뉴스
한우/낙농
한돈
양계
기타가축
환경
오피니언
축산산업
정보광장
recent news
해당섹션에 뉴스가 없습니다
recent guest
잘 읽었답니다^^*
제목이 길면 짤라야죠...