SJS.REGEXEXTRACT

SJS.REGEXEXTRACT 함수는 지정한 정규식에 따라 일치하는 하위 문자열을 추출합니다.

구문 인수 설명 text (필수) 검색 중인 텍스트입니다. 와일드카드 문자는 허용되지 않습니다. 텍스트가 빈 문자열이라면 빈 텍스트를 반환합니다."텍스트"와 같은 문자열, "C4"와 같은 셀 참조 또는 "C4: D4"와 같은 셀 범위 참조를 입력할 수 있습니다(동적 배열에서 작동) regular_expression (필수) 이 표현식과 일치하는 텍스트의 첫 번째 부분이 반환됩니다."[0-9]+"와 같은 문자열이나 "C4"와 같은 셀 참조를 입력할 수 있습니다. modifiers 패턴을 정의하는 수정자입니다."gi"와 같은 문자열이나 "C4"와 같은 셀 참조를 입력할 수 있습니다. 수정자 수정자 이름 설명 g global 마지막 일치 항목의 인덱스를 유지하여 후속 검색이 이전 일치 항목의 마지막에서 시작되도록 합니다.global 플래그가 없다면 후속 검색에서는 동일한 일치 항목이 반환됩니다. i ignore case 전체 표현식의 대소문자를 구분하지 않도록 합니다.예를 들어, /aBc/i는 AbC와 일치합니다. m multiline multiline 플래그가 활성화되면, 처음과 마지막 앵커(^ 및 \$)는 전체 문자열의 시작과 끝이 아닌 한 줄의 시작과 끝과 일치하게 됩니다./^[\s\S]+$/m과 같은 패턴은 앵커가 라인의 시작/끝과 일치하므로 여러 줄에 걸쳐 일치하는 항목을 반환할 수 있습니다. u unicode unicode 플래그가 활성화되면 \x{FFFFF} 형식의 확장 유니코드 이스케이프를 사용할 수 있습니다.또한 다른 이스케이프를 더욱 엄격하게 만들어 인식되지 않는 이스케이프(예: \j)는 오류를 발생시킵니다. y sticky 표현식은 마지막 인덱스 위치에서만 일치하며 설정된 경우 global (g) 플래그를 무시합니다. RegExr의 각 검색은 별개이므로, 이 플래그는 표시된 결과에 더 이상 영향을 미치지 않습니다. s dotAll 점(.)은 줄바꿈을 포함해 모든 문자와 일치합니다. 사용하는 수정자를 브라우저에서 지원하는지 확인해 주십시오. sticky를 사용하면 일관되지 않은 계산 결과를 가져오므로 수정자 "y"는 SJS에서 지원되지 않습니다.수정자 "y"가 설정되면 이는 계산에서 무시됩니다. 동적 배열 allowDynamicArray가 false로 설정된 경우 SJS.REGEXEXTRACT가 계속 작동합니다. 하지만 경우에 따라 최상의 결과를 얻기 위해 allowDynamicArray를 true로 설정해야 할 수 있습니다. 아래 예시에서, allowDynamicArray 플래그가 false인 경우 결과로 "Luve"를 얻고, 플래그가 true인 경우 결과로 ["Luve", "rose"]를 얻게 됩니다. 샘플
window.onload = function () { var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss")); initSpread(spread); }; function initSpread(spread) { spread.suspendPaint(); spread.options.allowDynamicArray = true; var sheet = spread.sheets[0]; var defaultStyle = new GC.Spread.Sheets.Style(); defaultStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.center; defaultStyle.vAlign = GC.Spread.Sheets.VerticalAlign.center; sheet.setDefaultStyle(defaultStyle); sheet.setColumnWidth(0, 250); sheet.setColumnWidth(1, 250); sheet.setColumnWidth(2, 120); sheet.setColumnWidth(3, 250); sheet.setColumnWidth(4, 80); sheet.setColumnWidth(5, 80); sheet.addSpan(0, 0, 2, 1); sheet.addSpan(0, 1, 2, 1); sheet.addSpan(0, 2, 2, 1); sheet.addSpan(0, 3, 2, 1); sheet.addSpan(0, 4, 2, 2); sheet.getCell(0, 0).value("Text").font("21px bold normal normal"); sheet.getCell(0, 1).value("Regular Expression").font("21px bold normal normal"); sheet.getCell(0, 2).value("Modifiers").font("21px bold normal normal"); sheet.getCell(0, 3).value("Formula Text").font("21px bold normal normal"); sheet.getCell(0, 4).value("Result").font("21px bold normal normal"); var dataArr = [ ["I think SpreadJS is Good", ".*(good).*", "i"], ["there is 300 rabbits grazing", "\\d+", ""], ["O my Luve is like a red, red rose", "O my (\\w+) is like a red, red (\\w+)", ""]]; sheet.setArray(2, 0, dataArr); for (var i = 0, len = dataArr.length; i < len; i++) { var row = 3 + i; sheet.setFormula(row - 1, 4, `=SJS.REGEXEXTRACT(A${row}, B${row}, C${row})`); sheet.setFormula(row - 1 , 3, `=FORMULATEXT(E${row})`); } spread.resumePaint(); document.getElementById("allowDynamicArray").addEventListener('change', function (e) { var checked = e.target.checked; spread.options.allowDynamicArray = !!checked; spread.resumeCalcService(); spread.resumePaint(); }); }
<!doctype html> <html style="height:100%;font-size:14px;"> <head> <meta name="spreadjs culture" content="ko-kr"/> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" type="text/css" href="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css"> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets/dist/gc.spread.sheets.all.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-resources-ko/dist/gc.spread.sheets.resources.ko.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/spread/source/js/license.js" type="text/javascript"></script> <script src="app.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="styles.css"> </head> <body> <div class="sample-tutorial"> <div id="ss" class="sample-spreadsheets"></div> <div class="options-container"> <div class="option-row"> <label class="colorLabel">Switch the allowDynamicArray flag.</label> </div> <div class="option-row"> <input type="checkbox" id="allowDynamicArray" checked /> <label for="allowDynamicArray">Allow Dynamic Array</label> </div> </div> </div> </body> </html>
.sample-tutorial { position: relative; height: 100%; overflow: hidden; } .sample-spreadsheets { width: calc(100% - 280px); height: 100%; overflow: hidden; float: left; } .options-container { float: right; width: 280px; overflow: auto; padding: 12px; height: 100%; box-sizing: border-box; background: #fbfbfb; } .option-row { margin-bottom: 12px; } label { user-select: none; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }