일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 1697
- InfluxDB
- 정규식 컴파일
- 정규식 활용
- c3 step graph
- telegraf
- snmp test
- python subprocess
- gcc 업데이트
- centos pyhon 설치
- 백준
- grafana dashboard
- python os
- g++ 업데이트
- CentOS7
- subporcess path
- linux시간으로 변경
- snmp
- 정규식 문자열 출력
- python popen
- gcc regex
- influxdb 설치
- c3 축 가리기
- c3 초
- selinux port 등록
- c++ 정규식
- semanage
- c3 second
- c3 축 없애기
- regex_search
- Today
- Total
리셋 되지 말자
[g++] 정규식 라이브러리 활용 본문
regex_search : 문자열 내에 정규식에 부합하는 문자열 찾기 or 추출(bool 반환)
regex_match : 정규식과 완벽히 일치하는 문장이면 true
일치여부만을 따지지 않고, 일치하는 문자열을 따로 출력하거나 저장 등등에 사용하려면
regex_search와 match_results를 같이 사용하면 된다.
●정규식
([0-9]+)(?!.*[0-9])
(문장의 맨 끝에있는 숫자를 검색하는 정규식)
●문자열
IF-MIB::ifInOctets.2 = Counter32: 519940\nIF-MIB::ifOutOctets.2 = Counter32: 1317538
●목표
519940과 1317538만 따로 찾아내어 따로 사용할 수 있어야 한다.
●코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
// regex_search example
#include <iostream>
#include <string>
#include <regex>
int main()
{
std::string s("IF-MIB::ifInOctets.2 = Counter32: 519940\nIF-MIB::ifOutOctets.2 = Counter32: 1317538");
std::smatch m;
std::regex e("([0-9]+)(?!.*[0-9])"); // matches words beginning by "sub"
while (std::regex_search(s, m, e)) {
std::cout << m.str(0).c_str();
s = m.suffix().str();
}
return 0;
}
|
cs |
●설명
정규식 regex e 를 보면, 괄호로 두 부분으로 나누었는데, 두 부분을 구분하여 사용할 수 있다.
suffix().str() : 정규식의 뒷부분
prefix().str() : 정규식의 앞부분
smatch m(0)의 인덱스 부분인 0는 인덱스에 따라 다르다.
m[0].str() : 정규식에 일치하는 문자열 전체
m[n].str() : n번째 그룹의 문자열 (m.str(n), *(m.begin()+n) 과 동일)
●참고한 사이트
https://www.sapphosound.com/archives/1653
http://www.cplusplus.com/reference/regex/regex_search/
http://www.jiniya.net/ng/2017/11/regex/
https://devluna.blogspot.com/2014/12/regexsearch.html
'gcc' 카테고리의 다른 글
[g++] 정규식 문자열 찾기 및 찾은 문자열 출력 (0) | 2020.01.28 |
---|---|
[g++, gcc] gcc 버전 업데이트(업그레이드) (0) | 2020.01.28 |
[g++] c++과 influxdb 연동해서 사용하기 (0) | 2020.01.23 |
[g++] popen 결과값 사용하기 (0) | 2020.01.23 |
[g++] C++ header file path (0) | 2020.01.23 |