smms 를 활용한 중장비 예지 정비 효과에 대한 연구 논문을 정리

smms 를 활용한 중장비 예지 정비 효과에 대한 연구 논문을 정리 SMMS(스마트 유지보수 관리 시스템)를 활용한 중장비 예지 정비에 대한 최신 연구 논문과 관련 효과, 기술적 배경, 실제 현장 적용 사례를 정리하면 아래와 같습니다[1][2][3][4][5]. 주요 최신 논문 및 연구 자료 정리 논문 제목 발행연도 연구 배경 연구 목적 연구 방법 연구 결과 연구의 기여 Predictive Maintenance in Industry 4.0: A Systematic Multi-sector Review 2024 산업 4.0 시대, 스마트 유지보수 도입 확대 중장비 포함 제조·건설·물류분야 예지정비 실효성 체계적 검토 문헌 리뷰, 현장 사례 분석 사전고장 예측 정확도 개선, 비용/생산성 이점 증명 AI·IoT 기반 PdM의 산업 적용 가이드라인 제공[2] Systematic Review of Predictive Maintenance Practices 2025 다양한 제조 산업에서 PdM 적용 현황 분석 최신 예지정비 기술의 효과 및 사례 파악 PRISMA 프레임워크로 문헌 리뷰 설비 다운타임 감소, 운용 효율 향상, 신뢰도 증가 향후 PdM 기술 도입 전략 제안[1] AI-Enabled Predictive Maintenance in Heavy Equipment Market 2025 AI·IoT 기반 중장비 시장 변화 예지정비가 중장비 운영에 미치는 영향 분석 AI/ML 모델 적용사례, 현장 성능 검증 장비수명 연장, 돌발정지 감소, 유지비 절감 산업별 AI 예지정비 도입 성공요인·시장 전망 분석[4] Enhancing Heavy Equipment Maintenance with Artificial Intelligence 2023 중장비 예지정비 영역의 AI 활용 초기 도전 CBM(조건기반 정비)와 AI 연계 효과 실험 센서 데이터, 머신러닝, 현장 실험 진동·온도·압력 데이터로 고장 예측 정확도 상승 실질적인 CBM+AI 설계, 운용 가이드 제공[5] SMMS 기반 ...

[핵심기초] 파이썬에서 정규 표현식 이용하기

 


[핵심기초] 파이썬에서 정규 표현식 이용하기


파이썬에서 정규표현식을 사용하기 위해서는 Regex를 위한 모듈인 re 모듈을 사용합니다.

 re 모듈의 compile 함수는 정규식 패턴을 입력으로 받아들여 정규식 객체를 리턴합니다. re.compile('검색 대상 문자열') 함수로 검색 대상 문자열을 입력하고 정규식 객체 (re.RegexObject 클래스 객체)를 통해 정규식을 이용할 수있습니다.

re.RegexObject 클래스는 re.search(pattern), re.match(pattern) ,re.split(pattern) 등과 같이 문자열을 검색, 분리, 대체 하는 다양한 함수들을 제공합니다.


1. 파이썬 Re모듈이 제공하는 Method 기능

- match(), search(), findall(), split(), sub() 등과 같이 다양한 함수를 제공합니다.

구분Method 종류설명
검색



re.match(RE, string)문자열의 시작 부분에서 RE가 일치하는지 판단합니다.
re.search(RE, string)문자열을 읽어 RE가 일치하는 위치를 찾으습니다.
re.findall(RE,string)RE가 일치하는 모든 부분 문자열을 찾아 리스트로 반환합니다.
re. finditer(RE,string)RE가 일치하는 모든 부분 문자열을 찾아 iterators 로 반환합니다
분리re.split(RE, string)문자열을 RE 패턴으로 쪼개어 리스트로 반환 합니다.
대체re.sub(RE, SUB, string)문자열에서 RE 패턴의 문자열을 SUB 문자열로 대체합니다.
* Iterators : https://www.w3schools.com/python/python_iterators.asp

다음은 파이썬 정규표현식 re 모듈을 import 하고 특정 문자열에서 무궁화로 시작하고 bloomed.로 마치는 문자를 확인하는  정규표현식입니다.


import  re

txt =  "무궁화 꽃이 피었다, The Mugunghwa has bloomed."
x = re.search("^무궁화.*bloomed.$", txt)
if x:
    print("YES! We have a match!")
else:
    print("No match")

print(x)

# 결과
<re.Match object; span=(0, 38), match='무궁화 꽃이 피었다. The Mugunghwa has bloomed.'>
# .* : 앞의 문자가 0개 이상 반복

파이썬 Re모듈로 문자열의 인덱스 기능

- 찾는 문자열의 시작위치, 끝 위치, 포함하는 구간의 문자열의 인덱스를 리턴합니다.

Method 종류설명
group()RE와 일치하는 문자열을 반환합니다.
start()일치의 시작 위치를 반환합니다
end()일치의 끝 위치를 반환합니다
span()일치의 (시작, 끝) 위치를 포함하는 튜플을 반환합니다.

 

import re
txt="Isaac Newton, physicist"
m = re.match(r"(\w+) (\w+)", txt)
print("group.all:",    m.group(0) )  # The entire match
print("group.first:",  m.group(1) )  # The first parenthesized subgroup.
print("group.second:", m.group(2) )  # The second parenthesized subgroup.
print("group.multiple:", m.group(1, 2))    # Multiple arguments give us a tuple.

>>>>>>>>>>>>>>>
group.all: Isaac Newton
group.first: Isaac
group.second: Newton
group.multiple: ('Isaac', 'Newton')

 

3. 자주 사용하는 정규식


3.1 정규식 정의 방법

1) 슬래시 와 문장 패턴을 사용
const re = /ab+c/
2) RegExp 생성자 이용
const re = new RegExp( 'ab+c')

3.2 정규식에 사용하는 메타 문자들의 용도별 예시

정규식에서 사용하는 메타문자의 종류 : . ^ $ * + ? { } [ ] \ | ( ) 등과 같은 특수 문자들 입니다.
정규식에 포함되는 일부 문자들은 특수한 의미와 기능을 가진 메타 문자 (metacharacters)로 인식합니다. 일반적인 문자로서 인식 하려면 "₩." ₩^ ₩$ 등과 같이 역슬래쉬 다음의 문자는 원래의 문자로 인식을 합니다. 주로 정규식의 메타 문자는 Regular Expression에서 특정 문자의 반복이나 의미를 바꾸어 주도록 처리할 문자 검색과 대체 등에 활용이 됩니다.


`.` :  1개의 문자와 일치, 뉴라인(\n) 을 제외한 모든 문자를 의미
예) .{3} : 아무 문자 3개로 구성된 문자열을 의미 (F15, 0x0 등)

import re
pattern =r"gr.y"
string ="gray"
result = re.match(pattern, string)
print(result)
# <re.Match object; span=(0, 4), match='gray'>

 
`^` : 문자열이나 행의 처음을 의미,  문자열의 시작 패턴을 의미함 
예) ^abc : abc로 시작하는 문자열을 의미 (abcd, abc12 등)

pattern =r"^gr.y"
string ="gray"
result = re.match(pattern, string)

`$` : 문자열을 마지막을 의미하고  종료 문자열의 패턴을 정의함
예) xyz$ : xyz로 종료되어야 함 (123xyz, strxyz 등)

pattern = r"gr.y$"
string = "gray"
result = re.match(pattern, string)

`*` : 앞 패턴이 0개 이상 반복됨을 의미
예) \d* : 숫자가 없거나 하나 이상인 문자열을 의미 

pattern = r"go*gle"
string = "ggle"
result = re.match(pattern, string)

`+` : 앞 패턴이 최소 하나 이상 반복됨
예)  \d+ : 숫자가 하나 이상 반복되는 문자열을 의미\

import re
pattern = r"go+gle"
string = "gogle"
result = re.match(pattern, string)

`?` : 앞 패턴이 없거나 정확히 하나의 문자를 의미함 (Optional 패턴을 정의할 때 사용)
예) \d? : 숫자가 하나 있거나 없어야 함

import re
pattern = r"go?gle"
string = "ggle"
result = re.match(pattern, string)

{n} : {n} 반복횟수가 정확히 n번, 패턴{n} 앞 패턴이 n번만 반복해서 나타나는 경우
예) \d{3} : 숫자가 3개 있어야 함 
{n,} : {n,} 반복횟수가 n번 이상, 패턴{n,} 앞 패턴이 n번 이상 반복해서 나타나는 경우
예) \d{3,} : 숫자가 3개이상 이어야 함
{n,m} :  {m, n} 반복 횟수 지정, 패턴{n, m} 앞 패턴이 최소 n번, 최대 m 번 반복해서 나타나는 경우 (n 또는 m 은 생략 가능)
예) \d{3,5} : 숫자가 3개, 4개 혹은 5개 있어야 함 

import re
pattern =r"go{1,3}gle"
string ="googlegle"
result = re.match (pattern, string)

 
[]: [문자들] 괄호 안의 가능한 문자 들의 집합을 정의함
예)  [Pp]ython : "Python" 혹은 "python"

import re
pattern =r"[abc]de"
pattern = r"[^abc]de"
string ="ade"
result = re.match (pattern, string)

`[^문자들]` :  [문자들] 중에서 제외되는(피해야할) 문자들의 집합을 정의함.
예) [^aeiou] : 소문자 aeiou를 문자를 제외한 문자들 의미함

import re
pattern = r"[^abc]de"
string ="ade"
result = re.match (pattern, string)

() : 괄호안의 문자열을 그룹으로인식함
예)  [(abc)f-z]   :   abcf,  abcx  abcz 등 과 같이 abc로 시작되는 문자열을 표현
`\` :  '\' 뒤에오는 문자를 특수 문자로 인식을 합니다. 
예) \\ 특수문자 '\'     \.  "."
`|` : 두 패턴 중 하나이어야 함 (OR 기능)
예) a | b : a 또는 b 를 나타냄
\A , \Z : \A 는 ^ 와 같고    \Z 는 $ 와 같음 
 

3.3 정규식에서 사용하는 특수 시컨스

정규식의 문자처리를 좀더 쉽게 표현하기 위해서 메타 문자와 달리 역설래시와 알파벳 문자로 구성된 특스 시컨스는 특수한 의미를 부여합니다.
특수 시퀀스는 '\'로 시작하고 숫자(digit) 집합, 글자(letter) 집합 또는 공백이 아닌 모든 것의 집합과 같이 종종 유용한 미리 정의된 문자 집합을 나타냅니다.

\d :
    숫자 0 ~ 9 \d\d\d : 0 ~ 9 범위의 숫자가 3개를 의미 (123, 000 등)
\w :
    문자를 의미 \w\w\w : 문자가 3개를 의미 (xyz, ABC 등)
\s :
    화이트 스페이스를 의미하는데, [\t\n\r\f] 와 동일 \s\s : 화이트 스페이스 문자 2개 의미 (\r\n, \t\t 등)
\d : 
    모든 십진 숫자와 일치합니다; 이것은 클래스 [0-9]와 동등합니다.
\D : 
   모든 비 숫자 문자와 일치합니다; 이것은 클래스 [^0-9]와 동등합니다.
\s : 
   모든 공백 문자와 일치합니다; 이것은 클래스 [ \t\n\r\f\v] 와 동등합니다.
\S :   
    모든 비 공백 문자와 일치합니다; 이것은 클래스 [^ \t\n\r\f\v] 와 동등합니다.
\w :
   모든 영숫자(alphanumeric character)와 일치합니다; 이것은 클래스 [a-zA-Z0-9_]와 동등합니다.
\W : 
   모든 비 영숫자와 일치합니다; 이것은 클래스 [^a-zA-Z0-9_]와 동등합니다.



참고
https://docs.python.org/ko/3/howto/regex.html

댓글

이 블로그의 인기 게시물

KrakenD API Gateway - krakend.json 파일의 기본 구조

Kraken api - get token with python

( 경영전략,사업전략 ) 마이클 포터의 가치사슬 분석(Value Chain Analysis) 이론