[英]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.