javascript - 如何使用正则表达式拆分这两个字符串?
问题描述
以下是2个字符串:
" at callback (/Users/lem/Projects/RingAPI/packages/server/node_modules/loopback-connector-rest/lib/rest-builder.js:541:21)"
" at /Users/lem/Projects/RingAPI/packages/server/node_modules/@loopback/repository/node_modules/loopback-datasource-juggler/lib/observer.js:269:22"
如何使用 JS 和 Regex 将它们拆分为这些?
['callback', '/Users/lem/Projects/RingAPI/packages/server/node_modules/loopback-connector-rest/lib/rest-builder.js', '541', '21']
['', '/Users/lem/Projects/RingAPI/packages/server/node_modules/@loopback/repository/node_modules/loopback-datasource-juggler/lib/observer.js', '269', '22']
解决方案
我为你写了简单的解析函数:
function parse(string) {
const functionName = string.match(/at .* /);
return [
...(functionName && [functionName[0].slice(2).trim()] || ['']),
...string.match(/\/.*/)[0].split(':')
];
}
首先,我尝试提取函数名称。如果存在,我删除“at”字并使用修剪功能删除不必要的空格。然后我寻找以斜杠'/'开头的子字符串并匹配它之后的每个字符。最后一步是拆分返回的字符串。
我相信它符合您的要求。我还在 stackblitz 中准备了演示:https ://stackblitz.com/edit/js-ol22yf
推荐阅读
- python - Firebase(客户端与服务器端)
- android - Xamarin 形成 PCL 浮动按钮和可扩展视图
- python - WS_TRANS = {ord(_wschar) : ' ' for _wschar in string.whitespace} AttributeError: 模块 'string' 没有属性 'whitespace'
- javascript - 如何对 ORM (sequelizejs) 查询添加条件检查?
- asp.net - 为什么我一直让您与此网站的连接不是私密的
- python - 将数据框隔离到另一个数据框
- json - Dialogflow:从 webhook 向用户打印 JSON 响应
- tls1.2 - TLSv1.2 使用 IBM Java 1.6 收到命运警报:handshak_failure
- r - 删除字符变量开头的“The”,并将其移至末尾
- ios - dyld_shared_cache_extract_dylibs 尝试在 iPhone 上运行应用程序时失败