-
[정규식] 단어 들어 있는 문장찾기VB(A) 2019. 6. 3. 14:25
https://cafe.naver.com/excelmaster/164935 에 올라온 질문입니다.
특정 단어가 포함된 문장을 출력하는 내용입니다.
정규식을 이용해 문장을 추출한 후 문장을 순환하며 단어를 골라내는 흐름입니다.
Option ExplicitFunction FindText(MySub As String, MyText As String) As StringDim i As IntegerDim v As Variant'문장 단위로 끊음v = GetText(MySub)'단어가 포함된 문장 추출For i = 0 To UBound(v) + 1If InStr(1, v(i), MyText, vbTextCompare) ThenFindText = v(i)Exit FunctionEnd IfNextEnd FunctionFunction GetText(tmp As String) As Variant'정규식을 활용하여 마침표, 물음표, 느낌표 기준으로 문장을 끊어주는 사용자정의 함수입니다.Dim Matches As ObjectDim i As IntegerDim v() As StringWith CreateObject("Vbscript.regexp").Global = True.ignorecase = True.Pattern = "(.+?[.?!])" '마침표, 물음표, 느낌표로 문장 단위로 나눕니다.If .test(tmp) ThenSet Matches = .Execute(tmp)ReDim v(Matches.Count - 1)For i = 0 To UBound(v)v(i) = Trim(Matches(i))NextGetText = vEnd IfEnd WithEnd Functioncs 'VB(A)' 카테고리의 다른 글
경품 추첨 (8) 2019.06.26 여러 개의 텍스트박스를 클릭하여 이름 알아내기 (0) 2019.06.17 도형 이름을 활용하여 도형 클릭시 해당 셀로 이동하기 (0) 2019.04.01 파일 오픈 여부 판단하기 (0) 2019.03.20 UTF-8 형식의 텍스트파일 불러오기 (0) 2019.03.19 댓글