如何找出部分字符串是否在引号中?

时间:2015-09-15 17:15:28

标签: regex

所以我有这种模式:

{% url my_view %}
{% url my_view user_id %}

这很糟糕,所以应该是这样的:

{% url 'my_view' %}
{% url 'my_view' user_id %}

因此'my_view'部分应始终用引号括起来。我需要做的就是我需要找到'my_view'部分不在引号中的所有事件。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

您可以替换以下正则表达式的结果:

/\{% url (\S+)(.*)%\}/

使用:

/\{% url \'\1\'\2%\}/ 

或者在某些正则表达式引擎中,您可能需要使用$1而不是\1

答案 1 :(得分:1)

使用lookarounds:

(?<={% url )[^'\s]*(?!')

See it in action

答案 2 :(得分:1)

您可以使用以下内容进行匹配:

(?<=\{% url )(\S+)

并替换为:

'$1'

请参阅DEMO

修改:如果您已有一些带引号的my_view,请使用以下内容:

(?<=\{% url )([^']\S+[^'])(?=\s)

请参阅DEMO