{"_id":"@aliyun-sls/regexp-util","_rev":"8-cb85134286776396a593085cec3c2369","name":"@aliyun-sls/regexp-util","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.1":{"name":"@aliyun-sls/regexp-util","version":"0.0.1","keywords":[],"_id":"@aliyun-sls/regexp-util@0.0.1","dist":{"shasum":"bc7fed6d377f4e879003bba5962176c4f1def5da","tarball":"https://registry.npmjs.org/@aliyun-sls/regexp-util/-/regexp-util-0.0.1.tgz","fileCount":13,"integrity":"sha512-ClmtJQyeghdBGUKhzvZqNC6inMbchag1jdtqajlgsxWObUWNikho4n8aS5qemVoqWyxbYSsTR2tnq8BleeT71Q==","signatures":[{"sig":"MEUCIDgSJS98B2zTAeojLYnSZ/aZMWpOD7OA+kzZPUPKyCOmAiEA8PfFF+RPE7ANHIH8lSBH3UCN+viL0qo7KVKpolZrWwU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":230172},"main":"./dist/regexp-util.umd.cjs","type":"module","module":"./dist/regexp-util.js","exports":{".":{"import":"./dist/regexp-util.js","require":"./dist/regexp-util.umd.cjs"}},"gitHead":"8bb818fed9c6e5cdfbc8cabf17d6268559e5f2e1","scripts":{"pb":"npm run build && npm publish --access public --registry=https://registry.npmjs.org/ && tnpm sync @aliyun-sls/regexp-util","test":"vitest","build":"NODE_ENV=production NODE_OPTIONS=--max_old_space_size=16384 vite build"},"_npmUser":{"name":"yuecjnadt","email":"yuecjn@gmail.com"},"_npmVersion":"9.8.1","description":"","directories":{},"_nodeVersion":"18.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.0","tslib":"^2.3.0","vitest":"^1.5.0","cross-env":"^5.2.0","typescript":"5.2.2","@types/node":"^18.10.2","@vitest/coverage-v8":"^0.34.6"},"_npmOperationalInternal":{"tmp":"tmp/regexp-util_0.0.1_1719470089529_0.023118498324204317","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@aliyun-sls/regexp-util","version":"0.0.2","_id":"@aliyun-sls/regexp-util@0.0.2","dist":{"shasum":"1f1b276fa5cf8d2cfa8a614bcfc42ad1edf79816","tarball":"https://registry.npmjs.org/@aliyun-sls/regexp-util/-/regexp-util-0.0.2.tgz","fileCount":10,"integrity":"sha512-hilK8DDzCfvQYu7RlsW0R4Rwmc0jtfWSz+5bCJt7GCGX+7Uapds94NgY+zBt8hogAIi6X53C0dMXKMzP4wpkDw==","signatures":[{"sig":"MEQCIHifdYxVvB4MlJOcKnN2qtmROGqdki3BROmMFX5BIfa0AiB95ZJ4Ze1p2xEB4lNr3AuRcG1ctKGC0JPK+9I0vNpFFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":229693},"main":"./dist/regexp-util.umd.cjs","type":"module","module":"./dist/regexp-util.js","exports":{".":{"import":"./dist/regexp-util.js","require":"./dist/regexp-util.umd.cjs"}},"gitHead":"8bb818fed9c6e5cdfbc8cabf17d6268559e5f2e1","scripts":{"pb":"npm run build && npm publish --access public --registry=https://registry.npmjs.org/ && tnpm sync @aliyun-sls/regexp-util","test":"vitest","build":"NODE_ENV=production NODE_OPTIONS=--max_old_space_size=16384 vite build"},"_npmUser":{"name":"yuecjnadt","email":"yuecjn@gmail.com"},"_npmVersion":"9.8.1","description":"","directories":{},"_nodeVersion":"18.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.0","tslib":"^2.3.0","vitest":"^1.5.0","cross-env":"^5.2.0","typescript":"5.2.2","@types/node":"^18.10.2","@vitest/coverage-v8":"^0.34.6"},"_npmOperationalInternal":{"tmp":"tmp/regexp-util_0.0.2_1719470474719_0.16973617311363975","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@aliyun-sls/regexp-util","version":"0.0.3","_id":"@aliyun-sls/regexp-util@0.0.3","dist":{"shasum":"2f6bd377e339d1849f350cc9da69c252b38f88ca","tarball":"https://registry.npmjs.org/@aliyun-sls/regexp-util/-/regexp-util-0.0.3.tgz","fileCount":12,"integrity":"sha512-g7SnWAKTYNaoYvvUxNMxdISD6r/tyEGa+xJIatvUNHHyHCrK5iI6w0iClYa/L/BaUs4Jdx6+BaYEdYyr0qICPw==","signatures":[{"sig":"MEUCIE6xamhqO17pM6qmSitnjyH4UsDUYkIjpD/+9wHRTAiXAiEAiTbHNLBoMgUFw/uW4pkky/a6SpdgOb1/boGOuon3szg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":585191},"main":"./dist/regexp-util.umd.cjs","type":"module","module":"./dist/regexp-util.js","exports":{".":{"import":"./dist/regexp-util.js","require":"./dist/regexp-util.umd.cjs"}},"gitHead":"8bb818fed9c6e5cdfbc8cabf17d6268559e5f2e1","scripts":{"pb":"npm run build && npm publish --access public --registry=https://registry.npmjs.org/ && tnpm sync @aliyun-sls/regexp-util","test":"vitest","build":"NODE_ENV=production NODE_OPTIONS=--max_old_space_size=16384 vite build"},"_npmUser":{"name":"yuecjnadt","email":"yuecjn@gmail.com"},"_npmVersion":"9.8.1","description":"","directories":{},"_nodeVersion":"18.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.0","tslib":"^2.3.0","vitest":"^1.5.0","cross-env":"^5.2.0","typescript":"5.2.2","@types/node":"^18.10.2","@vitest/coverage-v8":"^0.34.6"},"_npmOperationalInternal":{"tmp":"tmp/regexp-util_0.0.3_1719470677645_0.2961158710608942","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@aliyun-sls/regexp-util","version":"0.0.4","_id":"@aliyun-sls/regexp-util@0.0.4","dist":{"shasum":"d5108f15b4794ca16206c490836f7d6b8e831a8b","tarball":"https://registry.npmjs.org/@aliyun-sls/regexp-util/-/regexp-util-0.0.4.tgz","fileCount":17,"integrity":"sha512-5/zW03egj2MaEPFTb6wdengVJQXol1mglmp0I0ZJxW7WYGtbnBaBlSua/K4bw0d0NPt2BdgucJoFTGFtExxcpA==","signatures":[{"sig":"MEYCIQCaoMRu4kzbTrSw7JD7rl83ZKObgUYTWZfrDZ1Tej+uzQIhALW3LwiR99tQz+gKhu45zmOATjnm/vRsWmp8yNGuHU21","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":596413},"main":"./dist/regexp-util.umd.cjs","type":"module","module":"./dist/regexp-util.js","exports":{".":{"import":"./dist/regexp-util.js","require":"./dist/regexp-util.umd.cjs"}},"gitHead":"8af0a1ec867467e78e82e7bf2ed0791095eeb59b","scripts":{"pb":"npm run build && npm publish --access public --registry=https://registry.npmjs.org/ && tnpm sync @aliyun-sls/regexp-util","test":"vitest","build":"NODE_ENV=production NODE_OPTIONS=--max_old_space_size=16384 vite build"},"_npmUser":{"name":"yuecjnadt","email":"yuecjn@gmail.com"},"_npmVersion":"9.8.1","description":"## 生成正则","directories":{},"_nodeVersion":"18.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.0","tslib":"^2.3.0","vitest":"^1.5.0","cross-env":"^5.2.0","typescript":"5.2.2","@types/node":"^18.10.2","@vitest/coverage-v8":"^0.34.6"},"_npmOperationalInternal":{"tmp":"tmp/regexp-util_0.0.4_1719474240730_0.9206027240235022","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@aliyun-sls/regexp-util","version":"0.0.5","_id":"@aliyun-sls/regexp-util@0.0.5","dist":{"shasum":"4a983c39dde8739688186ed31d7614e7db4cf4b9","tarball":"https://registry.npmjs.org/@aliyun-sls/regexp-util/-/regexp-util-0.0.5.tgz","fileCount":7,"integrity":"sha512-7PNJbS6/mo73yStGhNPx/pXNAVtkHSBIJfyDMhQNPnTLtCyOU76gYfh4cFZZjuRJcgAUsRrow3KctB+j0whdzw==","signatures":[{"sig":"MEYCIQDcdYJjMlzaG1tB+3cvQAcJ9RIBJSWCRdV8qaJ9u1nuiwIhAKfqbM5cKo2UHJu2bR19z+ony5pDrMJNLi2jygapJkCs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":362688},"main":"./dist/regexp-util.umd.cjs","type":"module","module":"./dist/regexp-util.js","exports":{".":{"import":"./dist/regexp-util.js","require":"./dist/regexp-util.umd.cjs"}},"gitHead":"7123892dae043300e62393bc6dcef81e00a9a20b","scripts":{"pb":"npm run build && npm publish --access public --registry=https://registry.npmjs.org/ && tnpm sync @aliyun-sls/regexp-util","test":"vitest","build":"NODE_ENV=production NODE_OPTIONS=--max_old_space_size=16384 vite build"},"_npmUser":{"name":"yuecjnadt","email":"yuecjn@gmail.com"},"_npmVersion":"9.8.1","description":"## 生成正则","directories":{},"_nodeVersion":"18.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.0","tslib":"^2.3.0","vitest":"^1.5.0","cross-env":"^5.2.0","typescript":"5.2.2","@types/node":"^18.10.2","@vitest/coverage-v8":"^0.34.6"},"_npmOperationalInternal":{"tmp":"tmp/regexp-util_0.0.5_1719474740551_0.09435216494120024","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@aliyun-sls/regexp-util","version":"0.0.6","license":"Apache-2.0","_id":"@aliyun-sls/regexp-util@0.0.6","maintainers":[{"name":"nosmilen","email":"1581024375@qq.com"},{"name":"ruiqi.hy","email":"ruiqi.hy@alibaba-inc.com"},{"name":"yuecjnadt","email":"yuecjn@gmail.com"}],"dist":{"shasum":"fe8e210013a40044a2253d0acfa9c36886b3d6bd","tarball":"https://registry.npmjs.org/@aliyun-sls/regexp-util/-/regexp-util-0.0.6.tgz","fileCount":8,"integrity":"sha512-b47yFx5Ojp0B3fklHwuFsM8VZn74c287/Qcngs0MuJh08Ivk+LCA+DD1zcWYYQqqq1pZmjANmTvMAxteHop6nw==","signatures":[{"sig":"MEYCIQDkggAMwLH6yXPBvYI5OQ7BcmtvLebSckyDiFDQGh0B6QIhALX9dmrY+Pe5Cz7SLdM+yvZ+8xEh3po/LveFyinqezO9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1994584},"main":"./dist/regexp-util.umd.cjs","type":"module","module":"./dist/regexp-util.js","exports":{".":{"import":"./dist/regexp-util.js","require":"./dist/regexp-util.umd.cjs"}},"gitHead":"5b3836ccaf6f0d362499770b7808a34cd0c4a647","scripts":{"pb":"npm run build && npm publish --access public --registry=https://registry.npmjs.org/ && tnpm sync @aliyun-sls/regexp-util","test":"vitest","build":"NODE_ENV=production NODE_OPTIONS=--max_old_space_size=16384 vite build","start":"webpack serve --open"},"_npmUser":{"name":"yuecjnadt","email":"yuecjn@gmail.com"},"_npmVersion":"9.8.1","description":"## 生成正则","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.0","tslib":"^2.3.0","vitest":"^1.5.0","webpack":"^5.93.0","cross-env":"^5.2.0","typescript":"5.2.2","@types/node":"^18.10.2","webpack-cli":"^5.1.4","webpack-dev-server":"^5.0.4","@vitest/coverage-v8":"^0.34.6","html-webpack-plugin":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/regexp-util_0.0.6_1722407631535_0.010600887300552753","host":"s3://npm-registry-packages"}}},"time":{"created":"2024-06-27T06:34:49.424Z","modified":"2025-04-07T06:32:52.358Z","0.0.1":"2024-06-27T06:34:49.717Z","0.0.2":"2024-06-27T06:41:14.889Z","0.0.3":"2024-06-27T06:44:37.875Z","0.0.4":"2024-06-27T07:44:00.946Z","0.0.5":"2024-06-27T07:52:20.746Z","0.0.6":"2024-07-31T06:33:51.708Z"},"license":"Apache-2.0","description":"## 生成正则","maintainers":[{"email":"yuecjn@gmail.com","name":"yuecjnadt"},{"email":"ruiqi.hy@alibaba-inc.com","name":"ruiqi.hy"},{"email":"1581024375@qq.com","name":"nosmilen"},{"email":"qinghaotu@126.com","name":"7678tqh"}],"readme":"# SLS RegExp Util (日志服务正则工具库)\n\n## 生成正则\n\n```js\nimport { genLogRegex } from '@aliyun-sls/regexp-util'\n\nconst params1 = {\n  prefix: '',\n  content: '127.0.0.1',\n  suffix: ' - Alice [2024-06-25T19:22:23+08:00] \"DELETE /request/path-9/file-1 HTTP/1.1\" 168 82684 403 31804 www.test1.com www.test5.com \"Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1\"',\n}\nconst result1 = await genLogRegex(params1)\n// { regex: '(\\\\S+).*' }\n\nconst params2 = {\n  prefix: ' - ',\n  content: 'Alice',\n  suffix: ' [2024-06-25T19:22:23+08:00] \"DELETE /request/path-9/file-1 HTTP/1.1\" 168 82684 403 31804 www.test1.com www.test5.com \"Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1\"',\n}\nconst result2 = await genLogRegex(params2)\n// { regex: '\\\\s-\\\\s(\\\\w+).*' }\n```\n\n入参：\n\n* content: 需要生成正则的内容\n* prefix: content 之前的字符串（不包含已经生成正则的部分）\n* suffix: content 之后的字符串\n\n结果：\n\n* regex: content 的正则格式\n\n## 校验正则\n\n```js\nimport { checkLogRegex } from '@aliyun-sls/regexp-util'\n\nconst params = {\n  LogContent: '127.0.0.1 - Alice [2024-06-25T19:22:23+08:00] \"DELETE /request/path-9/file-1 HTTP/1.1\" 168 82684 403 31804 www.test1.com www.test5.com \"Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1\"',\n  BeginRegex: '.*',\n  LogRegex: '(\\\\S+)\\\\s-\\\\s(\\\\w+)\\\\s\\\\[([^]]+).*'\n}\nconst result = await checkLogRegex(params)\n// {\n//   result: [ '127.0.0.1', 'Alice', '2024-06-25T19:22:23+08:00' ],\n//   number: 3\n// }\n```\n\n入参：\n\n* LogContent: 日志内容\n* BeginRegex: 单行日志固定使用`.*`即可，多行日志的话使用行首正则表达式\n* LogRegex: 用于提取字段的正则表达式\n\n结果：\n\n* result: 提取出来的字段\n* number: 提取出来的字段个数\n\n## 生成行首正则\n\n```js\nimport { genBeginRegex } from '@aliyun-sls/regexp-util'\n\nconst params = {\n  logBegin: '127.0.0.1 - Alice [2024-06-25T19:22:23+08:00] \\n    \"DELETE /request/path-9/file-1 HTTP/1.1\" 168 82684 403 31804 www.test1.com www.test5.com \"Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1\"'\n}\nconst result = await genBeginRegex(params)\n// { regex: '\\\\d+\\\\.\\\\d+\\\\.\\\\d+\\\\.\\\\d+\\\\s-\\\\s.*' }\n```\n\n入参：\n\n* logBegin: 多行日志内容\n\n结果：\n\n* regex: 行首正则表达式\n\n## 校验行首正则\n\n```js\nimport { checkBeginRegex } from '@aliyun-sls/regexp-util'\n\nconst multipleLogContent = '127.0.0.1 - Alice [2024-06-25T19:22:23+08:00] \\n    \"DELETE /request/path-9/file-1 HTTP/1.1\" 168 82684 403 31804 www.test1.com www.test5.com \"Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1\"'\n\nconst params1 = {\n  BeginRegex: '\\\\d+\\\\.\\\\d+\\\\.\\\\d+\\\\.\\\\d+\\\\s-\\\\s.*',\n  LogContent: multipleLogContent,\n}\nconst result1 = await checkBeginRegex(params1)\n// {\n//   lines: 1,\n//   position: [0],\n//   result: [\n//     '127.0.0.1 - Alice [2024-06-25T19:22:23+08:00] ',\n//     '    \"DELETE /request/path-9/file-1 HTTP/1.1\" 168 82684 403 31804 www.test1.com www.test5.com \"Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1\"'\n//   ] \n// }\n\nconst params2 = {\n  BeginRegex: '\\\\d+\\\\.\\\\d+\\\\.\\\\d+\\\\.\\\\d+\\\\s-\\\\s.*',\n  LogContent: multipleLogContent + '\\n' + multipleLogContent,\n}\nconst result2 = await checkBeginRegex(params2)\n// {\n//   lines: 2,\n//   position: [0, 2],\n//   result: [\n//     '127.0.0.1 - Alice [2024-06-25T19:22:23+08:00] ',\n//     '    \"DELETE /request/path-9/file-1 HTTP/1.1\" 168 82684 403 31804 www.test1.com www.test5.com \"Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1\"',\n//     '127.0.0.1 - Alice [2024-06-25T19:22:23+08:00] ',\n//     '    \"DELETE /request/path-9/file-1 HTTP/1.1\" 168 82684 403 31804 www.test1.com www.test5.com \"Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1\"'\n//   ] \n// }\n```\n\n入参：\n\n* BeginRegex: 行首正则表达式\n* LogContent: 日志内容\n\n结果：\n\n* lines: 匹配到的日志条数\n* position: 匹配行首正则表达式的行号，从0开始\n* result: 分割后的每一行日志\n\n## 生成时间格式\n\n```js\nimport { genTimeFormat } from '@aliyun-sls/regexp-util'\n\nconst params = {\n  timeValue: '2024-06-25 19:22:23'\n}\nconst result = await genTimeFormat(params)\n// { regex: '%Y-%m-%d %H:%M:%S' }\n```\n\n入参：\n\n* timeValue: 时间字符串\n\n结果：\n\n* regex: 时间格式\n\n## 校验时间格式\n\n```js\nimport { checkTimeFormat } from '@aliyun-sls/regexp-util'\n\nconst params = {\n  timeValue: '2024-06-25 19:22:23',\n  timeFormat: '%Y-%m-%d %H:%M:%S'\n}\nconst result = await checkTimeFormat(params)\n// { result: true }\n```\n\n入参：\n\n* timeValue: 时间字符串\n* timeFormat: 时间格式\n\n结果：\n\n* result: 时间格式校验是否通过\n","readmeFilename":"README.md"}