如何使用正则表达式查找和替换新的 rxjs 语法?
How to use regex to find and replace for new rxjs syntax?
我想将我的 rxjs 代码升级到新语法。为此,我使用 vscode 并通过正则表达式“查找并替换”。
旧语法:
.pipe(
catchError((err) => {
...
})
)
.subscribe((res) => {
...
});
新语法是:
.subscribe({ next: (res) => { ... }, error: (err) => { ... });
我尝试使用我构建的这个正则表达式,但我似乎正则表达式是错误的并且不确定为什么,因为在该正则表达式中我找到了 catchError
和 subscribe
之间的内容。那么如何让它以正确的方式工作呢?
\.pipe(\s\ScatchError(.*).subscribe(.*)
另外,我怎样才能将匹配此模式的所有地方替换为新模式?
regex101.com
你可以使用
^\.pipe\(\n\s*catchError([\w\W]*?\}\))\n\s*\)\s*\.subscribe([\w\W]*?\}\));$
参见regex demo。
详情:
^
- 行首
\.pipe\(
- 文字 .pipe(
文本
\n
- 一个换行符
\s*
- 0+ 个空格
catchError
- 字面意思
([\w\W]*?\}\))
- 第 1 组:任何零个或多个字符,尽可能少,直到并包括 })
子字符串
\n\s*
- 换行符和 0+ 个空格
\)
- 一个 )
字符
\s*
- 0+ 个空格
\.subscribe
- 文字 .subscribe
字符串
([\w\W]*?\}\))
- 第 2 组:任何零个或多个字符,尽可能少,直到并包括 })
子字符串
;$
- 行尾的 ;
个字符。
我想将我的 rxjs 代码升级到新语法。为此,我使用 vscode 并通过正则表达式“查找并替换”。
旧语法:
.pipe(
catchError((err) => {
...
})
)
.subscribe((res) => {
...
});
新语法是:
.subscribe({ next: (res) => { ... }, error: (err) => { ... });
我尝试使用我构建的这个正则表达式,但我似乎正则表达式是错误的并且不确定为什么,因为在该正则表达式中我找到了 catchError
和 subscribe
之间的内容。那么如何让它以正确的方式工作呢?
\.pipe(\s\ScatchError(.*).subscribe(.*)
另外,我怎样才能将匹配此模式的所有地方替换为新模式? regex101.com
你可以使用
^\.pipe\(\n\s*catchError([\w\W]*?\}\))\n\s*\)\s*\.subscribe([\w\W]*?\}\));$
参见regex demo。
详情:
^
- 行首\.pipe\(
- 文字.pipe(
文本\n
- 一个换行符\s*
- 0+ 个空格catchError
- 字面意思([\w\W]*?\}\))
- 第 1 组:任何零个或多个字符,尽可能少,直到并包括})
子字符串\n\s*
- 换行符和 0+ 个空格\)
- 一个)
字符\s*
- 0+ 个空格\.subscribe
- 文字.subscribe
字符串([\w\W]*?\}\))
- 第 2 组:任何零个或多个字符,尽可能少,直到并包括})
子字符串;$
- 行尾的;
个字符。