[英]VSCode Regex Search and Replace to Remove Code Block
我们如何使用 VSCode 搜索和替换正则表达式来删除具有模式的代码块
id: {
...
field: "id"
},
例如,如果我们有以下代码:
module.exports = sequelize => {
const attributes = {
id: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: "nextval(foo_id_seq::regclass)",
comment: null,
primaryKey: true,
field: "id"
},
count: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: false,
field: "count"
},
搜索和替换后,它应该变成
module.exports = sequelize => {
const attributes = {
count: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: null,
comment: null,
primaryKey: false,
field: "count"
},
尝试使用\\t\\t\\tid: {*.? "id"\\n\\t\\t\\t},
\\t\\t\\tid: {*.? "id"\\n\\t\\t\\t},
但它无法选择任何内容。
搜索:
\n\s+id: \{\s+[^}]*field: "id"[^}]*\},
并替换为空字符串。
https://regex101.com/r/rpOnch/1
您确实需要转义{
括号,这对于正则表达式引擎来说是不寻常的。
要修复您的原始模式,您需要
避开括号
替换*.?
与.*?
如果你可以让点匹配换行符,但我在 VSCode 中没有看到这样做的方法,所以你可能必须使用[\\s\\S]*?
(或类似的东西)代替
您可以使用Select By扩展。
根据 2 个正则表达式搜索您想要的块。 选择将被调整。 按删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.