Sublime AutoFold用:匹配#region间内容且不隐藏名称的正则怎么写?
适配Sublime Text AutoFold扩展的通用region匹配正则
你需要的通用正则表达式如下:(?<=-- #region [^\n]*\n)[\s\S]*?(?=-- #endregion)
正则说明
- 后行断言
(?<=-- #region [^\n]*\n)会定位到-- #region开头的整行结束后的位置,不会匹配区域名称部分,自然不会隐藏首行的名称内容 [\s\S]*?为惰性匹配规则,可匹配包含换行在内的任意字符,且只会匹配单个region块内的内容,不会出现跨块匹配的问题- 前行断言
(?=-- #endregion)会在匹配到-- #endregion前停止,不会包含尾行的标记内容
适配其他语言
如果需要适配其他语言,只需把正则开头的-- 替换为对应语言的单行注释前缀即可,示例:
- Python:
(?<=# #region [^\n]*\n)[\s\S]*?(?=# #endregion) - JavaScript:
(?<=\/\/ #region [^\n]*\n)[\s\S]*?(?=\/\/ #endregion)
内容的提问来源于stack exchange,提问作者GooDimuch
相关产品推荐
相关产品推荐

