달력

11

« 2019/11 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30


 

디자인 패턴(Design Pattern)

·       프로그램 설계 유형

·       소프트웨어 디자인(프로그램 개발)에서 계속 재현되는 문제를 해결하는 재사용 가능한 해결법 입니다.

·       소프트웨어 개발과정에서 발견된 Know-How를 축적하여 이름을 붙여 이후에 재사용하기 좋은 형태로 특정 규약을 묶어서 정리한 것입니다.

·       객체지향 프로그래밍에서 공통으로 디자인 문제를 찾아내고 해결하는 가이드라인 제공합니다.

·       특정 유형의 프로그래밍 문제를 해결하는 방식을 제공해주는 역할을합니다.

·       알고리즘과 같이 프로그램 코드로 바로 변환될 수 있는 형태는 아니지만, 특정 상황에서 구조적인 문제를 해결하는 방식을 설명합니다.

 

 

https://en.wikipedia.org/wiki/Design_Patterns

 

 

 

 

A sample UML class and sequence diagram for the Bridge design pattern.


https://en.wikipedia.org/wiki/Bridge_pattern

 


Posted by codedragon codedragon

댓글을 달아 주세요



 

정규표현식 문자

표현식

설명

[pattern]

·       대괄호안에 있는 문자 

[^pattern]

·       대괄호안에 없는 문자 

.

·       줄바꿈이나 Unicode줄마침 문자를 제외한 아무 문자 

\w

·       ASCII 문자

·       [a-zA-Z0-9_] 동일

\W

·       ASCII 문자가 아닌 문자

·       [^a-zA-Z0-9_] 동일

\s

·       Unicode공백 문자

·       white space characters: space, new line and tab

\S

·       Unicode 공백 문자가 아닌 문자

·       \w \S 다르다는 것에 주의

\d

·       ASCII 숫자

·       [0-9] 동일

\D

·       ASCII 숫자가 아닌 문자

·       [^0-9] 동일

[\b]

·       백스페이스(특수한 경우)

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

Regex Cross­word

regular expressions 퍼즐 게임

 

http://bit.ly/2KT4HfG


 

 


 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

RegExp 객체

RegExp 객체는 정규 표현식을 구현한 자바스크립트 표준 내장 객체입니다.

 

 

 

 

RegExp 객체 생성

검색 패턴을 나타내는 정규 표현식은 따옴표나 슬래시(/) 감싸야 합니다.

기본 검색 설정을 변경할 있는 플래그는 필요할 때만 전달할 있습니다.

new RegExp(검색패턴[, 플래그]);

 

 


'Development > Regular Expression' 카테고리의 다른 글

정규표현식 문자  (0) 2019.05.08
Regex Cross­word - regular expressions 퍼즐 게임  (0) 2019.04.20
RegExp 객체 생성  (0) 2019.02.04
정규 표현식 만드는 단계  (0) 2019.01.22
RegExp 객체 메소드, RegExp 프로퍼티  (0) 2019.01.22
양화사(quantifier)  (0) 2019.01.22
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

정규 표현식 만드는 단계

단계

설명

1

테스트 문자열을 입력합니다.

2

표현식 작성합니다.

 

3

테스트 문자열과 매칭된 결과를 확인합니다.

 

4

2~3단계를 반복합니다.

표현식을 조금씩 수정해가면서 매칭 결과를 확인해가면서 정확한 표현식을 만들 수 있습니다.

 

 



Posted by codedragon codedragon

댓글을 달아 주세요


 

 

RegExp 객체 메소드

RegExp.prototype 메소드입니다.

메소드

설명

exec()

·       인수로 전달된 문자열에서 특정 패턴을 검색하여, 패턴과 일치하는 문자열을 반환합니다.

·       만약에 패턴과 일치하는 문자열이 없으면 null 반환합니다.

test()

·       인수로 전달된 문자열에 특정 패턴과 일치하는 문자열이 있는지를 검색합니다.

·       만약에 패턴과 일치하는 문자열이 있으면 true, 없으면 false 반환합니다.

 


 

RegExp 프로퍼티

정규 표현식에서 사용할 있는 RegExp.prototype 프로퍼티입니다.

속성

설명

global

·       완전 일치

·       검색 패턴을 비교할 일치하는 모든 부분을 선택하도록 설정하는 플래그인 'g' 가리킵니다.

ignoreCase

·       대문자 소문자 무시

·       검색 패턴을 비교할 대소문자를 구분하지 않도록 설정하는 플래그인 'i' 가리킵니다.

lastIndex

·       다음 패턴조회를 시작하는 위치

source

·       조회시킬 패턴

·       검색 패턴이 포함하고 있는 문자열을 가리킵니다.

input

·       검색 문자열의 설정, 변경($_로도 가능)

multiline

·       줄바구기 코드를 무시할지 여부($_로도 가능)

·       (무시하지 않는다), 거짓(무시한다.) 설정

·       검색 패턴을 비교할 여러 줄의 입력 문자열을 상태 그대로 여러 줄로 비교하도록 설정하는 플래그인 'm' 가리킵니다.

lastMatch

·       패턴 조회한 최후의 문자($&로도 가능)

lastParen

·       패턴 조회한 최후의 substring($+로도 가능)

leftContext

·       패턴 조회한 값의 앞의 문자($Q로도 가능)

rightContext

·       패턴 조회한 값의 다음 문자($'로도 가능)

$1~$9

·       패턴 조회한 것의 일부를 저장한다.(9개까지

 

 

 




Posted by codedragon codedragon

댓글을 달아 주세요


 

양화사(quantifier)

·       정규 표현식에서는 특수 문자로 수량을 나타내는 다양한 양화사를 사용할 있습니다.

·       물음표(?) 기호가 정규 표현식의 양화사(*, +, ?, {}) 바로 다음에 위치하게 되면, 가능한 많은 문자를 가지도록 패턴을 찾는 기본 설정과는 달리 해당 양화사가 가능한 적은 수의 문자만을 가지는 패턴을 찾도록 변경시킵니다.

 

괄호

설명

n*

·       바로 앞의 문자가 0 이상 나타나는 경우를 검색합니다.

·       /{0, }/ 같습니다.

n+

·       바로 앞의 문자가 1 이상 나타나는 경우를 검색합니다.

·       /{1, }/ 같습니다.

n?

·       바로 앞의 문자가 0 또는 1번만 나타나는 경우를 검색합니다.

·       /{0,1}/ 같습니다..

 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

 

정규 표현식에서 사용하는 특수문자

다음에 나오는 특수 문자를 문자열로 인식합니다.

특수문자

설명

^

·       문자열이나 행의 처음

·       입력 문자열의 시작 위치를 찾습니다.(라인의 처음과 패턴과 찾습니다.)

·       가령, ^A 라고 써주면 검색하고자 하는 문장의 시작문자가 A인지를 검사하는 것입니다.

$

·       문자열이나 행의

·       입력 문자열의 위치를 찾습니다.(라인의 끝과 패턴과 찾습니다.)

·       가령, $A 라고 써주면 검색하고자 하는 문장의 마지막문자가 A인지를 검사하는 것입니다.

*

·       0 이상의 문자와 찾습니다.( 모든것이라는 의미 ==> {0,} 같은 의미 )

·       : "cg*" "cg", "cginjs" 등입니다.

+

·       1 이상의 문자와 찾습니다.( {1,} 같은 의미임. )

·       : "cg+" "cg", "cginjs" 등이지만 "c" 아닙니다.

?

·       0 또는 1개의 문자 의미.( {0,1} 같은 의미임. )

·       : " C?j" 라면 C라는 문자와 j라는 문자사이에 문자가 0 또는 1 들어갈 있다는 말입니다.

·             Cj, Cnj, Cgj등과 같은..

.

·       "n" 제외한 모든 단일 문자를 찾습니다.

·       "n" 포함한 모든 문자를 찾으려면 '[.n]' 패턴을 사용합니다.

()

·       한번 match 수행해서 나온 결과를 기억함.

·       : /(cnj)/ cnj라는 단어를 검색한 , 단어를 배열등과 같은 저장장소에 남겨두어 나중에 다시 호출할 있도록 합니다.

|

·       OR

{n}

·       정확히 n개의 문자(n 음이 아닌 정수)

·       : a{2} a 문자 , , aa 의미합니다.

{n,}

·       n정확히 n 찾습니다.(n,음이 아닌 정수)

·       : "c{2}" "cnj" "c" 찾지 않지만 "bcccccccccf" 모든 c 찾습니다.

{n,m}

·       최소 n, 최대 m 찾습니다.(n 음이 아닌 정수)

·       : "b{1,4}" "bcccccccccf" 처음 개의 c 찾습니다.

·       쉼표와 숫자 사이에는 공백을 넣을 없습니다.

[xyz]

·       괄호 안의 문자 하나를 찾습니다.(문자들의 set 의미)

·       가령, [a-z]라면 a부터 z까지의 모든 문자와 찾습니다.하는 것으로 []안의 - 범위를 나타냅니다.

·       괄호 안의 문자 하나를 찾습니다.

·       :, "[abc]" "cnj" "c" 찾습니다.

[^xyz]

·       제외 문자 집합입니다.(네가티브(-) 캐릭터 )

·       괄호 밖의 문자 하나를 찾습니다.

·       : "[^abc]" "acn" "n" 찾습니다.

x|y

·       x 또는 y 찾습니다.

·       : "c|cginjs" "c" 또는 "cginjs" 찾습니다.

[a-z]

·       문자 범위입니다.(지정한 범위 안의 문자를 찾습니다)

·       : "[a-z]" "a"부터 "z" 사이의 모든 소문자를 찾습니다.

[^a-z]

·       제외 문자 범위입니다(지정된 범위 밖의 문자를 찾습니다)

·       : "[^a-z]" "a"부터 "z" 사이에 없는 모든 문자를 찾습니다.

[b]

·       백스페이스와 찾습니다.

b

·       단어와 공백 사이의 위치를 찾습니다.(단어의 경계)

·       단어의 앞이나 뒤가 패턴과 일치하는지를 검색합니다.

·       : "erb" "never" "er" 찾지만 "verb" "er" 찾지 않습니다.

B

·       단어의 비경계를 찾습니다.

·        : "erB" "verb" "er" 찾지만 "never" "er" 찾지 않습니다.

cX

·       X 나타내는 제어 문자를 찾습니다.(control 문자와 찾습니다)

·       : cM Control-M , 캐리지 리턴 문자를 찾습니다.

·             x 값은 A-Z 또는 a-z 범위 안에 있어야 합니다.

·             그렇지 않으면 c 리터럴 "c" 문자로 간주됩니다.

d

·       0부터 9까지의 아라비아 숫자와 찾습니다.

·       [0-9] 같은 의미

D

·       숫자가 아닌 문자를 찾습니다.

·       [^0-9] 같습니다.

f

·       폼피드 문자(form-feed) 찾습니다.

·       x0c cL 같은 의미

n

·       linefeed( 바꿈 문자) 찾습니다.

·       x0a cJ 같은 의미

r

·       캐리지 리턴 문자를 찾습니다(x0d cM 같은 의미)

s

·       공백, , 폼피드( 바꿈 문자) 등의 공백을 찾습니다.

·       [ tnrfv] 같은 의미

S

·       s 아닌 문자(공백이 아닌 문자) 찾습니다.

·       [^ tnrfv] 같은 의미

t

·       문자를 찾습니다. (x09 cI 같은 의미)

v

·       수직 문자를 찾습니다.(x0b cK 같은 의미)

w

·       밑줄을 포함한 영문자 숫자를 찾습니다.

·       "[A-Za-z0-9_]" 같은 의미

W

·       영문자, 숫자가 아닌 문자, 문자가 아닌 요소를 찾습니다.

·       % 등과 같은 특수 문자를 의미

·       "[^A-Za-z0-9_]" 같은 의미

n

·       n 마지막 일치하는 문장

xn

·       n 찾습니다. 여기서 n 16진수 이스케이프 값입니다.

·       16진수 이스케이프 값은 정확히 자리여야 합니다.

·       : 'x41' "A" 찾고 'x041' 'x04' "1" 같습니다.

·              정규식에서 ASCII 코드를 사용할 있습니다.

num

·       num 찾습니다.(num 양의 정수)

·       캡처한 문자열에 대한 역참조입니다.

·       : '(.)1' 연속적으로 나오는 동일한 문자 개를 찾습니다.

nm

·       8진수 이스케이프 값이나 역참조를 나타냅니다.

·       nm 앞에 최소한 nm개의 캡처된 부분식이 나왔다면 nm 역참조입니다.

·       nm 앞에 최소한 n개의 캡처가 나왔다면 n 역참조이고 뒤에는 리터럴 m 옵니다.

·       경우가 아닐 n m 0에서 7 사이의 8진수이면 nm 8진수 이스케이프 nm 찾습니다.

nml

·       n 0에서 3 사이의 8진수이고 m l 0에서 7 사이의 8진수면 8진수 이스케이프 nml 찾습니다.

un

·       n 4 자리의 16진수로 표현된 유니코드 문자입니다.

·       : u00A9 저작권 기호() 찾습니다.

ooctal

xhex

·       8(octal)진수, 10(hex)진수

xhh

·       16진수 hh 해당하는 유니코드 문자를 검색합니다.

uhhhh

·       16진수 hhhh 해당하는 유니코드 문자를 검색합니다.

 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

 

정규 표현식 플래그(flags) 구성 요소(생략 가능)

·       정규 표현식을 생성할 플래그를 사용하여 기본 검색 설정을 변경할 있습니다. 이렇게 설정된 플래그는 나중에 추가되거나 삭제될 없습니다.

·       정규 표현식 플래그는 생략 가능합니다.

 

플래그

설명

g

·       검색 패턴을 비교할 완전일치하도록 설정합니다.

·       검색 패턴을 비교할 일치하는 모든 부분을 선택하도록 설정합니다.

·       발생할 모든 pattern 대한 전역 검색

m

·       검색 패턴을 비교할 여러 줄의 입력 문자열을 상태 그대로 여러 줄로 비교하도록 설정합니다.

i

·       검색 패턴을 비교할 /소문자의 구분을 무시하도록 설정합니다.

gi

·       /소문자 무시하고 완전 일치

y

·       대상 문자열의 현재 위치부터 비교를 시작하도록 설정합니다.

 

 



Posted by codedragon codedragon

댓글을 달아 주세요


 

 

정규 표현식 리터럴

·       정규 표현식 리터럴은 슬래시(/) 기호로 시작하여, 슬래시(/) 기호로 끝납니다.

·       또한, 필요에 따라 플래그를 추가하여 기본 검색 설정을 변경할 수도 있습니다.

 

/검색패턴/플래그

 

 


Posted by codedragon codedragon

댓글을 달아 주세요