2015.02.22 12:41


울트라에디터 정규식 표현들입니다.

아래 정규식 사용 방식을 이용해서 소스코드나 장문의 글들에서 불규칙적인 표현들의 전체를 쉽게 찾거나 바꿀수 있습니다.
아래 내용은 울트라 에디터 홈페이지에서 발췌한 글입니다.
자세한 내용은 아래 사이트를 참고하세요



Simple String Matching

Simple string matching is probably the most basic form of regular expressions but can allow you to quickly exploit different patterns so that you can search for more than one string at a time rather than doing multiple Find operations.

UltraEdit RegExp:

Find What: m?n
Matches: "man" and "men" but not "moon"

Find What: t*t
Matches: "test", "tonight" and "tea time" (the "tea t" portion) but not "tea
time" (newline between "tea " and "time").

Find What: Te+st
Matches: "test", "teest", "teeeest", etc. but does not match "tst"

UNIX RegExp:

Find What: m.n
Matches: "man" and "men" but not "moon"

Find What: t.*t
Matches: "test", "tonight" and "tea time" (the "tea t" portion) but not "tea
time" (newline between "tea " and "time").

Find What: Te+st
Matches: "test", "teest", "teeeest", etc. but does not match "tst"



Character Sets

A character set is a group of characters bounded by "[" and "]". These may be used to designate specific characters to be matched or ranges (i.e. [aeud], or [a-z]).

UltraEdit RegExp:

Find What: [aeiou]
Matches: every vowel

NOTE: Regular Expressions in UltraEdit are not case-sensitive unless Match Case is selected in the Find dialog. 

Find What: [,.^?]
Matches: a literal ",", "." or "?".

Because the "?" is a symbol used in expressions it must be "escaped" for the literal character to be matched rather than interpreted as an expression.

Find What: [0-9a-z]
Matches: any digit or letter

Find What: [~0-9]
Matches: any character except a digit (~ means NOT the following)

UNIX RegExp:

Find What: [aeiou]
Matches: every vowel

Find What: [,\.?]
Matches: a literal ",", "." or "?".

Because the "." is a symbol used in expressions it must be "escaped" for the literal character to be matched rather than interpreted as an expression.

Find What: [0-9a-z]
Matches: any digit or letter

Find What: [^0-9]
Matches: any character except a digit (^ means NOT the following)



OR Expressions

Currently UltraEdit only allows for the specification of two operands for an OR expression. You may search for an expression A or B as follows:

UltraEdit RegExp:

Find What: ^{John^}^{Tom^}

UNIX RegExp:

Find What: (John|Tom)

There should be nothing between the two expressions. You may combine A or B and C or D in the same search as follows:

UltraEdit RegExp:

Find What: ^{John^}^{Tom^} ^{Smith^}^{Jones^}

UNIX RegExp:

Find What: (John|Tom) (Smith|Jone)

This will search for "John" or "Tom" followed by "Smith" or "Jones".



Deleting Blank Lines

With Regular Expressions selected in the Replace dialog this will match the a CR/LF (DOS line terminator) immediately followed by the end of a line (i.e., a blank line) and replace it with nothing, effectively deleting it:

UltraEdit RegExp:

Find What: ^p$
Replace With: (literally nothing)

UNIX RegExp:

Find What: \p$
Replace With: (literally nothing)



Reformatting Text With Tagged Expressions

Example 1:

Tagged expressions may be used to mark various data members so that they may be reorganized, reformatting the data. For example, it might be useful to be able to rearrange:

John Smith, 385 Central Ave., Cincinnati, OH, 45238

into:

45238, Smith, John, 385 Central Ave., Cincinnati, OH

UltraEdit RegExp:

Find What: %^([a-z]+^) ^([a-z]+^), ^(*^), ^(*^), ^(*^), ^([0-9]+^)
Replace With: ^6, ^2, ^1, ^3, ^4, ^5

UNIX RegExp:

Find What: ^([a-z]+) ([a-z]+), (.*), (.*), (.*), ([0-9]+)
Replace With: \6, \2, \1, \3, \4, \5


Example 2:

If you have a web-based registration system it might be useful to rearrange the order data into a format easily used by a database:

name = John Smith
address1 = 385 Central Ave.
address2 = 
city = Cincinnati
state = OH
zip = 45238

into:

John Smith, 385 Central Ave.,, Cincinnati, OH, 45238,

This can be done with the following expression:

UltraEdit RegExp:

Find What: name = ^([a-z ]+^)^paddress1 = ^([a-z 0-9.,]+^)^paddress2 = ^([a-z 0-9.,]++^)^pcity = ^([a-z]+^)^pstate = ^([a-z]+^)^pzip = ^([0-9^-]+^)
Replace With:^1, ^2, ^3, ^4, ^5, ^6

UNIX RegExp:

Find What: name = ([a-z ]+)\paddress1 = ([a-z 0-9.,]+)\paddress2 = ([a-z 0-9.,]*)\pcity = ([a-z]+)\pstate = ([a-z]+)\pzip = ([0-9^-]+)
Replace With:\1, \2, \3, \4, \5, \6

신고


Posted by injunech
2015.02.22 12:22



정규식 (UltraEdit 구문):


기호  기능

%   줄의 시작과 일치   줄의 시작에서 문자열 검색을 지시합니다. 그러나 검색된 문자열에서 줄 끝 문자를 포함하지 않습니다.

$    줄의 끝과 일치   줄의 끝에서 문자열 검색을 지시합니다. 그러나 검색된 문자열에서 줄 끝 문자를 포함하지 않습니다.

     새 줄을 제외한 하나의 문자와 일치

*    새 줄을 제외한 어떤 문자에서 발생한 숫자와 일치

+    + 문자 전의 문자로 시작하는 단어를 찾습니다.

++   바로 전의 문자/식과 일치, 0 또는 여러 번

^b   페이지 나눔과 일치

^p   새 줄과 일치 (CR/LF) (단락) (DOS 파일)

^r    새 줄과 일치 (CR 만) (단락) (MAC 파일)

^n   새 줄과 일치 (LF 만) (단락) (UNIX 파일)

^t    탭 문자와 일치

[ ]  한 문자와 일치 또는 대 괄호 [ ] 범위 내 일치

^{A^}^{B^}  식 A 또는 B와 일치

^     이어지는 정규식 문자 무시하기

^( ) 교체 명령에서 사용되는 브라켓 또는 태그 식. 정규식은 순서에 따른 9개의 태그 식을 가질 수 있습니다. 

      일치하는 교체식은 ^x (x는 1-9까지 범위)입니다. 예: ^(h*o^) ^(f*s^)이 "hello folks"와 일치하면 ^2 ^1은 그것을 "folks hello"으로 교체합니다.


참고 - ^ 는 문자입니다. '^'은 컨트롤 키 + 값이 아닙니다.


예:

        m n 은 "man", "men", "min" 과 일치 그러나 "moon"과 일치하지는 않습니다.


        t*t 는 "test", "tonight", "tea time" ("tea t" 일부)과 일치합니다. 그러나 

       "tea 

        time" ("tea "와 "time"의 새 줄) 과 일치하지 않습니다.


        Te+st 는 "test", "teest", "teeeest" 와 일치합니다. 그러나 "tst"와 일치하지 않습니다.


        [aeiou] 는 소문자 모음과 일치합니다.

        [,. ]는 문자 ",", "." , " "와 일치합니다.

        [0-9, a-z] 는 숫자와 소문자와 일치합니다.

        [~0-9] 는 숫자를 제외한 문자와 일치합니다. (~는 해당 내용이 아닌 경우)


아래와 같이 A 또는 B 형태의 식으로 검색할 수 있습니다:


"^{John^}^{Tom^}”


이것은 John 또는 Tom을 검색합니다. 식 사이에는 내용을 삽입할 수 없습니다.


아래와 같이 A 또는 B와 C 또는 D 형태를 조합하여 검색할 수 있습니다:


        "^{John^}^{Tom^} ^{Smith^}^{Jones^}"


이것은 John 또는 Tom 다음에 Smith 또는 Jones을 검색합니다.



예제 >

<table>

    <tr>

        <td>a

        </td>

    </tr>

</table>

<table>

    <tr>

        <td>b

        </td>

    </tr>

</table>


이런 소스에서


<table>

<tr>

  <td>


부분을 모두


<table style="height:100px">

<tr height="20">

  <td valign="middle">


으로 바꾸고 싶다면

Replace 를 아래와 같이 합니다.


검색 문자 : <table>^p <tr>^p  <td>

변경 문자 : <table style="height:100px">^p <tr height="20">^p  <td valign="middle">


예제 >

소스 편집을 하다보면 쓸 데 없이 엔터가 두 번 이상 들어갈 때가 많습니다.

아래와 같이 합니다.


검색 문자 : ^p^p

변경 문자 : ^p



예제 >

탭이 들어가 있는 경우

검색 문자 : ^t

변경 문자 : ,




예제 >


t*t 는 t, 그리고 갯수에 상관없는 문자열, 그리고 t 를 의미하니까

"tt", "test", "tonight" 이 참이 되며,

"tea time"과 같은 경우도 참이 되는데, 이 때 replace 에 걸리는 것은

tea time 이 아니라 tea t 가 됩니다.

"tea" 와 같은 경우는 거짓이겠죠

그리고, 

tea

time

과 같이 개행문자가 사이에 들어간 경우엔 잡히지 않습니다.




예제 >


        Te+st 는 "test", "teest", "teeeest" 와 일치합니다. 그러나 "tst"와 일치하지 않습니다.



예제 >


[aeiou] : 소문자로 된 영어 모음을 의미

[,. ] : ","나 "."나 " "를 의미

[0-9, a-z] 숫자 혹은 소문자 영문자를 의미

[~0-9] 어떤 문자든지 숫자를 제외한 문자를 의미 (~ 는 부정의 뜻이죠)



예제 >

아래와 같이 A 또는 B 형태의 식으로 검색할 수 있습니다: 

"^{John^}^{Tom^}”

이것은 John 또는 Tom을 검색합니다. 식 사이에는 내용을 삽입할 수 없습니다.




예제 >

아래와 같이 A 또는 B와 C 또는 D 형태를 조합하여 검색할 수 있습니다:


        "^{John^}^{Tom^} ^{Smith^}^{Jones^}"


이것은 John 또는 Tom 다음에 Smith 또는 Jones을 검색합니다.




예제 >

style값이나 classr값을 전체적으로 변경해야 할 경우가 있는데..

그럴땐 이런 식으로 썼습니다.


검색 문자 : style="*"

변경 문자 : style="height:100px"

검색 문자 : class="xxxxx"

변경 문자 : class="yyyy"

일케 하면 모든 값이 변경됩니다.


그리고,

검색 문자: <table*>

변경 문자 : <table border=1 cellpadding=0 cellspacing=0>

이렇게 해주면 모든 테이블이 한방에 일치하게 되겠죠..







찾을 문자열 : %^(^{[0-9]^}^{[0-9][0-9]^}^)

바꿀 문자열 : <font color=white><b>^1


숫자 (0~99) 로 시작하는 줄을 찾아서 줄의 시작에 태그 삽입하기.


찾을 문자열 : ^(<font color=white><b>*^)^p

바꿀 문자열 : ^1</font></b>^p 


해당 태그로 시작하는 줄 (줄 전체) + 개행문자 까지 찾아서 찾은 문자열의 끝에 종료태그를 삽입하기.

신고


Posted by injunech