繁体   English   中英

正则表达式,用于匹配花括号和以引号开头或结尾的开头或结尾的substr

[英]RegEx That Matches Curly Braces and Leading or Trailing Substr Beginning or Ending with Quotes

我有一个正则表达式,用于匹配各种花括号,因此我可以在开发过程中将其注释掉。

我的RegEx是:

/{{.+_includes\s*}}|[^>\s]*{{\s*|\s*}}[^<\s]*|{%.+%}/g

这与我用#号包裹的子字符串匹配:

1.  #{{ #builtin_body_classes# }}#  

2.  #"{{ #builtin_body_classes# }}# no-js"  

3.  "no-js #{{ #builtin_body_classes# }}"#

4.  "no-js some-other-class #{{#builtin_body_classes#}}"#

5.  #{{standard_header_includes}}#

6.  #{{ standard_footer_includes }}#

7.  <title>#{{ #page_meta.html_title# }}#</title>

8.  #{% type_of_module "unique_module_name" parameterString='String parameter value', parmeterBoolean=True %}#

请注意,每行的开头和结尾的空格(两个空格)不匹配,示例title标签也不匹配。

对于除了两种情况以外的所有情况,这都完全符合我的要求,即用引号引起来的行(情况2、3和4)。

对于这些情况,我希望引号和子字符串也可以包含在比赛中的花括号中,例如引号或后缀

2.  #"{{ #builtin_body_classes# }} no-js"#  

3.  #"no-js {{ #builtin_body_classes# }}"#

4.  #"no-js some-other-class {{#builtin_body_classes#}}"#

同样,我将要匹配的子字符串包装在#号之间。

非常感谢帮助实现这一目标,而且我确信我的正则表达式也可以进行优化;-)

我现在已经解决了问题。 我的正则表达式是:

/{{.+_includes\s*}}|(?:"+.*|[^>\s]*){{\s*|\s*}}(?:.*"+|[^<\s]*)|{%.+%}/g

您可以在下面查看我的比赛,也可以在http://regexr.com/3fijm上直播

1.  #{{ #builtin_body_classes# }}#  

2.  #"{{ #builtin_body_classes# }} no-js"#  

3.  #"no-js {{ #builtin_body_classes# }}"#

4.  #"no-js some-other-class {{#builtin_body_classes#}}"#

5.  #{{standard_header_includes}}#

6.  #{{ standard_footer_includes }}#

7.  <title>#{{ #page_meta.html_title# }}#</title>

8.  #{% type_of_module "unique_module_name" parameterString='String parameter value', parmeterBoolean=True %}# 

正如我在原始问题中所说的那样,我确信可以对正则表达式进行优化或改进。 所以建议欢迎!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM