xython_regex

jfinder(사용법) - Jfinder코드 vs re코드 비교 - 06

작성자
sjpark
작성일
2024-12-12 21:14
조회
23

jfinder(사용법) - Jfinder코드 vs re코드 비교

설명 jfinder코드 re코드
복잡한 생년월일 ([0-9]{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[1,2][0-9]|3[0,1]))-[1-4][0-9]{6}
문자열에서 한글만 1개에서 20개 사이의 문장 추출 [한글:1~20]
핸드폰번호 [시작](010|019|011)-[숫자:4~4]-[숫자:4~4] ^(010|019|011)-\d{4}-\d{4}
숫자4개로시작하며-숫자1~2개-숫자1~2개로 끝난느것 찾기 [시작][숫자:4~4]-[숫자:1~2]-[숫자:1~2][끝] ^\d{4}-\d{1,2}-\d{1,2}$
공백이 1~3개있고 영어로된 1~10안의 문자를 찾는것 [공백:1~3][영어:1~10]-[숫자:1~10][영어:0~10][공백:1~5]
1개이상의 공백 [공백:2~10]
괄호안의 1~20개의 글자 \([문자:1~20]\)
이메일주소 검사 [시작][영어&한글&숫자:1~]([특수문자-+.:0~] [영어&숫자:1~])[0~]@[영어&숫자:1~][특수문자-.:0~] [영어&숫자:1~][특수문자.:1~][영어&숫자:1~]([특수문자-.:1~]
[영어&숫자:0~])[끝]
(최소찾기)[영어:1~3]-[영어&숫자:1~8][영어&숫자.-:1~1]
[영어&숫자._%+-:1~20]txt
[숫자:0~3][0~1]-[0~1] [숫자:3~4]-[0~1][숫자:3~4]
(최소찾기)[문자:0~]정수[문자:0~]
시작부터 끝까지 영어 대문자로만 된 것 찾기 [시작][영어대문자:1~][끝]
[시작][숫자:0~][숫자|[]\#$%:3~3]-[숫자:3~4]-[숫자:4~4][숫자|b:3~4]-[숫자:3~4]-[숫자:4~4]-[숫자:3~4]-숫자:4~4][끝]
[영어: 1~3]-[숫자: 2~5][영어: 0~1][ /: 0~1][영어: 0~1]
원하는 문장에서 100단위 이하의 숫자만 갖고오고싶을 때 [숫자:1~3][not 숫자:1~1]
(대소문자무시)(여러줄)(개행문자포함)[시작](뒤에있음:aaa)abcd[숫자&한글:1~5][단어(rdf):1~2][끝]
(최소찾기)(이름<name>[숫자&한글:1~5][단어(rdf):1~2])[끝]
[숫자&한글:1~5][단어(rdf):1~2])[끝]
[숫자:2~3]-[0~1][숫자:4~4]-[0~1][숫자:4~4]
[영어:1~3]-[숫자:2~5][영어:0~1][/:0~1][영어:0~1]
[숫자:2~3]-[0~1][숫자:4~4]-[0~1][숫자:4~4]
[숫자&한글:1~5][단어(rdf):1~2])[끝]
(이름<name>[숫자&한글:1~5])[단어(rdf):1~2][끝]
핸드폰번호 찾기 01(0|6||7|8|9)[-:0~1][숫자:3~4][-:0~1][숫자:3~4]

import jfinder
jf =jfinder.jfinder()

test_text = """abcdef라고 ABCDEF도 소문자와 대문자를 함께쓴 abcdEFG쓰고(괄호1)로 만들고나서 숫자를 123456하고 789로 써본다.
숫자로 만 된 010-일이삼사-5678을 가지고 (괄호안의 (괄호2))test해보려고 합니다
"""
#괄호안의 문자를 찾는것
#조건에 맞는것만 돌려줍니다
aa = "\( [문자:1~20] \) "
result = jf.run_search(aa, test_text)
print(result)
re_sql = jf.change_jfinder_regex(aa)
print("정규표현식 구문은 ==>", re_sql)


#조건에 맞는것의 위치까지 알려주는 것입니다
aa = "(최소찾기) \( [문자:1~20] \) "
result = jf.run_all(aa, test_text)
print(result)
re_sql = jf.change_jfinder_regex(aa)
print("정규표현식 구문은 ==>", re_sql)

#조건에 맞는 문자열을 바꾸는 것입니다
aa = "\( [문자:1~20] \) "
result = jf.run_replace(aa, test_text, "***문자열변경***")
print(result)
re_sql = jf.change_jfinder_regex(aa)
print("정규표현식 구문은 ==>", re_sql)

#사용하기 쉽게 만들기 위해, 문자수등의 제한은 없읍니다
result = jf.get_text_between_ab(test_text, "(", ")")
print(result)
re_sql = jf.change_jfinder_regex(aa)
print("정규표현식 구문은 ==>", re_sql)

word-image-2659-1.png