기본 정규표현식 기호

1 ^ 문자열의 시작을 나타냄 패턴이 문자열의 맨 앞에서부터 일치해야 함
2 $ 문자열의 을 나타냄. 패턴이 문자열의 맨 끝에서 일치해야 함
3 . 임의의 단일 문자와 일치함. 어떤 문자든 한 글자와 일치할 수 있음
4 * 바로 앞의 패턴이 0 이상 반복될 수 있음을 의미함
5 + 바로 앞의 패턴이 1 이상 반복될 수 있음을 의미함
6 | OR 연산자로, 앞의 패턴 또는 뒤의 패턴 중 하나와 일치하면 됨
7 [ ] 문자 클래스에 해당, 대괄호 안에 있는 문자들 중 하나와 일치하면 됨
 - 예: [aeiou]는 "a", "e", "i", "o", "u" 중 하나의 문자와 일치
8 { } 바로 앞의 패턴이 정확히 n 반복되는 경우와 일치함
 - 예: ([DdIi]){2}는 "D", "d", "I", "i" 중 1개 문자가 두 번 연속 나타남
9 ( ) 그룹을 나타냄. 패턴의 일부를 그룹으로 묶어서 처리할 수 있음
10 [^....] 대괄호 안에 있는 문자들을 제외한 문자와 일치함
 - 예: [^aeiou]는 "a", "e", "i", "o", "u"를 제외한 문자와 일치

 

기본 패턴

1.    ^([DdIi]){2}: 문자열의 시작에서 "D", "d", "I", "i" 중 하나가 두 번 연속으로 나타남

 

2.    ^[aeiou].*[aeiou]$: 문자열이 모음으로 시작하고, 중간에 0개 이상의 임의 문자가 있으며, 마지막에 모음으로 끝

 

3.    ^[aeiou].+[aeiou]$: 문자열이 모음으로 시작하고, 중간에 최소 한 글자의 임의 문자가 있으며, 마지막에 모음으로 끝

 

4.    ^[aeiou]($|.*[aeiou]$): 문자열이 모음으로 시작, 모음 하나로 끝나거나 중간에 0개 이상의 문자, 마지막 모음으로 끝

 

5.    (^[AEIOUaeiou])|([AEIOUaeiou]$): 문자열이 모음(A, E, I, O, U, a, e, i, o, u)으로 시작하거나 끝

 

6.    ^[AEIOUaeiou]: 문자열이 모음으로 시작

 

'Data Analysis > Regex' 카테고리의 다른 글

정규표현식  (0) 2024.06.25

https://leetcode.com/problems/patients-with-a-condition/description/

 

replace, substring, concat, left, right, lower, upper, trim, length, format, instr 정도만 알아도 SQL 데이터 변형에 큰 문제가 없겠지만, Regex 문법 까지 익숙해지면 빠른 전처리에 큰 도움이 될 것 같다.

 

 

 

Write a solution to find the patient_id, patient_name, and conditions of the patients who have Type I Diabetes. Type I Diabetes always starts with DIAB1 prefix.

Return the result table in any order.

The result format is in the following example.

 

Example 1:

Input: 
Patients table:
+------------+--------------+--------------+
| patient_id | patient_name | conditions   |
+------------+--------------+--------------+
| 1          | Daniel       | YFEV COUGH   |
| 2          | Alice        |              |
| 3          | Bob          | DIAB100 MYOP |
| 4          | George       | ACNE DIAB100 |
| 5          | Alain        | DIAB201      |
+------------+--------------+--------------+
Output: 
+------------+--------------+--------------+
| patient_id | patient_name | conditions   |
+------------+--------------+--------------+
| 3          | Bob          | DIAB100 MYOP |
| 4          | George       | ACNE DIAB100 | 
+------------+--------------+--------------+
Explanation: Bob and George both have a condition that starts with DIAB1.

 

 

 

 

#  conditions 열에 'DIAB1'이라는 문자열을 포함하는 모든 행을 선택

SELECT * 
FROM patients 
WHERE conditions REGEXP '\\bDIAB1'

'sql > easy' 카테고리의 다른 글

1978. Employees Whose Manager Left the Company  (0) 2024.08.21
1251. Average Selling Price  (0) 2024.06.03
1341. Movie Rating  (0) 2024.05.31
550. Game Play Analysis IV  (0) 2024.05.29
511. Game Play Analysis I  (0) 2024.03.30

+ Recent posts