카테고리 없음
정규표현식, JSON과 XML의 공통점과 차이점
jay20033
2024. 7. 18. 02:43
정규표현식
정규표현식이란
특정한 규칙을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어.
어떤 문자열에서 특정한 조건의 문자열을 찾고 싶을 때, 그 조건이 복잡한 경우 유용.
정규 표현식 문법
- ^ : 문자열의 시작을 의미.
- $ : 문자열의 끝을 의미.
- . : 문자 한 개를 의미. '.'이 위치한 곳에 어떤 문자든지 1개의 문자가 들어감.
- [ ] : 대괄호에 있는 문자 중 한 개를 의미. [abc]는 a, b, c 중 하나를 선택.
- [^] : not의 의미로, 대괄호에서 쓴다면 [^abc] : a, b, c 제외하고 나머지를 의미.
- | : or을 의미. a|b : a 또는 b.
- () : 공통되는 부분을 묶을 때, 서브 패턴을 지정할 때 사용. abc|abd -> ab(c|d)로 바꿀 수 있음.
- ? : 문자가 0회 또는 1회 등장. a? b는 a가 나올 수도, 없을 수도 있음. ab, b.
- * : 문자가 0회 이상 등장. a*b : b, ab, aaab, aaab..
- + : 문자가 1회 이상 등장. a+b : ab, aab, aaab..
- {n} : 문자가 n개 나옴. a {2} b : aab
- {n,} : 문자가 n개 이상 나옴. a {2,} b : aab, aaab, aaaab..
- {n, m} : 문자가 n개 이상 m개 이하로 나옴. a {1,3 } b : ab, aab, aaab
- \s : 공백 제거
- \t : 탭
- \d : 숫자, [0-9]와 동일
- \b : 단어의 경계, 문자 사이의 공백
- \w : 알파벳이나 숫자, [a-zA-Z0-9_]와 동일
- 위의 \s, \t, \d, \b, \w는 대문자로 바꾸면 반대 의미가 됩니다.
정규 표현식 사용해보기
1. Regex 클래스의 생성자 이용
val regex = Regex("[0-9|a-z]")
2. String 클래스의 확장 함수 toRegex() 이용
val regex ="[0-9|a-z]".toRegex()
3. 삼중 따옴표를 이용한 정규식 처리
- 삼중 따옴표 안에서는 이스케이프 문자를 따로 처리할 필요가 없습니다.
val regex = """\([A-Z]\w+\)""".toRegex()
find()
- 정규식과 일치하는 첫 번째 요소를 찾을 때 사용하는 함수
findAll()
- 정규식과 일치하는 모든 요소를 찾고 싶을 때 사용하는 함수
JSON과 XML의 공통점과 차이점
1. XML
- XML은 데이터를 저장하고 전달할 목적으로 만들어졌으며, 저장되는 데이터의 구조를 기술하기 위한 언어입니다.
- XML은 EXtensible Markup Language의 약자로, 수많은 응용 분야에서 데이터를 저장하고 전달하는 중요한 역할을 맡고 있습니다.
2. XML의 특징
- XML은 다른 목적의 마크업 언어를 만드는 데 사용되는 다목적 마크업 언어입니다.
- XML은 다른 시스템끼리 다양한 종류의 데이터를 손쉽게 교환할 수 있도록 해줍니다.
- XML은 새로운 태그를 만들어 추가해도 계속해서 동작하므로, 확장성이 좋습니다.
- XML은 데이터를 보여주지 않고, 데이터를 전달하고 저장하는 것만을 목적으로 합니다.
- XML은 텍스트 데이터 형식의 언어로 모든 XML 문서는 유니코드 문자로만 이루어집니다.
3. XML 목적
- 서로 호환되지 않는 데이터 타입을 사용하는 시스템 간의 데이터 교환에는 많은 시간과 노력이 발생합니다.이렇게 데이터를 변환하는 과정에서 데이터의 손실이 발생하는 경우도 종종 있습니다.
- 하지만 XML은 데이터를 텍스트 형식으로 저장하므로, 소프트웨어나 하드웨어에 독립적으로 데이터를 저장하고 전달할 수 있습니다.
- 따라서 XML을 사용하면 새로운 운영체제나 프로그램, 브라우저 등에 상관없이 데이터를 안전하고 손쉽게 전달할 수 있습니다.
4. JSON
- JSON은 JavaScript Object Notation의 약자입니다.
- JSON은 좀 더 쉽게 데이터를 교환하고 저장하기 위하여 만들어진 텍스트 기반의 데이터 교환 표준입니다.
- JSON은 자바스크립트를 기반으로 만들어졌습니다. 자바스크립트에 대한 기초 지식이 있으면 배우기 수월합니다.
- JSON은 XML의 대안으로서 좀 더 쉽게 데이터를 교환하고 저장하기 위하여 고안되었습니다.
- JSON은 텍스트 기반이므로 어떠한 프로그래밍 언어에서도 JSON 데이터를 읽고 사용할 수 있습니다.
5. JSON의 특징
- JSON은 자바스크립트를 확장하여 만들어졌습니다.
- JSON은 자바스크립트 객체 표기법을 따릅니다.
- JSON은 사람과 기계가 모두 읽기 편하도록 고안되었습니다.
- JSON은 프로그래밍 언어와 운영체제에 독립적입니다.
6. JSON과 XML의 공통점
- 데이터를 저장하고 전달하기 위해 고안되었습니다.
- 사람도 쉽게 읽을 수 있습니다.
- 계층적인 데이터 구조를 가집니다.
- 다양한 프로그래밍 언어에 의해 파싱될 수 있습니다.
- XMLHttpRequest 객체를 이용하여 서버로부터 데이터를 전송받을 수 있습니다.
7. JSON과 XML의 차이점
- JSON은 종료 태그를 사용하지 않습니다.
- JSON의 구문이 XML의 구문보다 더 짧습니다.
- JSON 데이터가 XML 데이터보다 더 빨리 읽고 쓸 수 있습니다.
- XML은 배열을 사용할 수 없지만, JSON은 배열을 사용할 수 있습니다.
- XML은 XML 파서로 파싱되며, JSON은 자바스크립트 표준 함수인 eval() 함수로 파싱됩니다.