Sublime Text:复杂的正则表达式 - 搜索和替换
Sublime Text: complicated regex - search and replace
我想做一个快速测试,看看 <span ng-bind="test.id"></span>
是否比使用 {{test.id}}
进行数据绑定更好。我可以用正则表达式对整个应用程序执行此操作吗?
我必须确保它不会替换 <div id="chat-{{otherPerson.id}}" ...>
等标签内的变量,因此它只会替换 <div class="message">{{message.body}}</div>
.[=15= 等内容]
我还需要能够检查是否使用了过滤器:{{ otherPerson | fullname}}
这甚至可以使用正则表达式,还是我需要编写一个繁重的任务来处理它?
我想你可以使用这个正则表达式:
/(^|(>[^\<]*)|(^[^\<]*))(\{\{[^\{\}]*\}\})/igm
并使用其替代
.
如果我猜对了,你想更换
>\s*\{\{([^|}<]+)\}\}
与
ng-bind="">
注意替换前面有space。
对于过滤器外壳,您可以更换
>\s*\{\{([^|}<]+\|[^|}<]+)\}\}
与
ng-bind="()">
您可以尝试多遍方法
- 搜索正则表达式
"(.*)\{\{([^\|]+?)\}\}(.*)"
替换为 "[[[]]]"
- 搜索正则表达式
\{\{\s*([^\|]+?)\s*\}\}
将其替换为 <span data-bind=""></span>
- 搜索正则表达式
\[\[\[
替换为 {{
- 搜索正则表达式
\]\]\]
替换为 }}
我相信你应该能够使用这种类型的正则表达式
/([^'"])\{\{([^\}|]+)\}\}/gi
- 匹配 1 = 任何不以单引号或双引号开头的内容
- 然后有两个左花括号
- 匹配 2 = 大括号内的任何内容(如果它有一个或多个字符),直到不是管道或闭花括号
- 然后有两个闭合卷曲
- 全局和不区分大小写的搜索标志
并替换为
'<span ng-bind=""></span>'
希望对您有所帮助!
我想做一个快速测试,看看 <span ng-bind="test.id"></span>
是否比使用 {{test.id}}
进行数据绑定更好。我可以用正则表达式对整个应用程序执行此操作吗?
我必须确保它不会替换 <div id="chat-{{otherPerson.id}}" ...>
等标签内的变量,因此它只会替换 <div class="message">{{message.body}}</div>
.[=15= 等内容]
我还需要能够检查是否使用了过滤器:{{ otherPerson | fullname}}
这甚至可以使用正则表达式,还是我需要编写一个繁重的任务来处理它?
我想你可以使用这个正则表达式:
/(^|(>[^\<]*)|(^[^\<]*))(\{\{[^\{\}]*\}\})/igm
并使用其替代 .
如果我猜对了,你想更换
>\s*\{\{([^|}<]+)\}\}
与
ng-bind="">
注意替换前面有space。
对于过滤器外壳,您可以更换
>\s*\{\{([^|}<]+\|[^|}<]+)\}\}
与
ng-bind="()">
您可以尝试多遍方法
- 搜索正则表达式
"(.*)\{\{([^\|]+?)\}\}(.*)"
替换为"[[[]]]"
- 搜索正则表达式
\{\{\s*([^\|]+?)\s*\}\}
将其替换为<span data-bind=""></span>
- 搜索正则表达式
\[\[\[
替换为{{
- 搜索正则表达式
\]\]\]
替换为}}
我相信你应该能够使用这种类型的正则表达式
/([^'"])\{\{([^\}|]+)\}\}/gi
- 匹配 1 = 任何不以单引号或双引号开头的内容
- 然后有两个左花括号
- 匹配 2 = 大括号内的任何内容(如果它有一个或多个字符),直到不是管道或闭花括号
- 然后有两个闭合卷曲
- 全局和不区分大小写的搜索标志
并替换为
'<span ng-bind=""></span>'
希望对您有所帮助!