【问题标题】:Regex sublime file search正则表达式崇高文件搜索
【发布时间】:2018-01-06 15:10:20
【问题描述】:

我希望这将是一个简单的正则表达式问题,我正在尝试使用错误的 {% if ... endif %} 语法查找用于搜索 django 文件(sublimetext)的正则表达式。

问题是错误的相等性测试:

{% if a = b %}<script> a = b; </script>{% endif %}
{% if a == b %}<script> a = b; </script>{% endif %}

第一个不正确,第二个可以,我试过了:

{% if (.*?) = (.*?) %} 

模式女巫返回结果中的第二行。

也许这会对django problem link 有所帮助。不应选择第二行

感谢

【问题讨论】:

  • 所以你试图用if a==b替换所有if a=b
  • 不是替换,只是想找到所有类似的案例。 a = b 只是举例。实际案例非常复杂。 Django 部分是我想找到 {% if a = b %}
  • 那么你希望匹配什么类型的东西呢?第 1 行和第 2 行?全部{% if ... %}?
  • 好的,多行不是问题。我有一堆文件有某种形式的错误。 {% if a = b %} var a = b; {% endif %} 也可以是 {% if list.length = 12 %}, {% if "正确相等" = 'False' %}。当 django 正常 {% if == %} 但“=”符号是同一行的一部分(示例中的第二行)时,我得到了错误的结果。我必须手动检查所有文件,因为 OK django {% if == %} 可能会抛出错误结果,因为 JS 在同一行中分配了一些变量(或其他一些“=”场景)。
  • 我想念 cmets 中的多行。也许这会对django problem link 有所帮助。不应选择第二行

标签: javascript regex django-templates


【解决方案1】:

也许是这样的?

{%\s*if[^=]+=[^=]+%}

它应该只匹配第一行

【讨论】:

    【解决方案2】:

    {% if (.*?) ==? (.*?) %}

    应匹配具有 1 个或 2 个等号的所有类型的 if 语句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 2018-04-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多