我正在寻找正则表达式,以采取以下字符串,并获得/* start */
和/* end */
之间的选定数据。
import {str}from'envalid';import {buildEnv}from'@leno/core';const { cleanEnv, envalidConfig } = buildEnv(process['APP_ENV'] || process.env, /* start */ {
CLIENT_URL: str(),
INITIAL_ACCOUNT_PAGE: str({ default: 'dashboard', devDefault: 'test', desc: 'initial page to redirect after org selection' }),
APP_NAME: str({ default: 'CDEBase' }),
}/* end */);export{cleanEnv,envalidConfig};//# sourceMappingURL=env-config.js.map
选择的结果应该是
{
CLIENT_URL: { default: false, devDefault: false },
INITIAL_ACCOUNT_PAGE: { default: true, devDefault: true },
APP_NAME: { default: true, devDefault: false },
}
2条答案
按热度按时间nzk0hqpo1#
这里可能不需要任何正则表达式。常规的
indexOf
可能就足够了。lb3vh1jj2#
我不清楚默认要求。下面是一个使用3个正则表达式的解决方案,假设如下:
/* start */
和/* end */
=〉regex 1中的数据str()
替换为{ default: false, devDefault: false }
=〉regex 2str(...)
内的内容,如果有=〉regex 3输出量:
正则表达式1的解释:
^
-字符串起点处的锚.*?
-非贪婪扫描*
-可选空格(.*?)
-使用非贪婪扫描捕获组1,在替换中引用为$1
*
-可选空格\/\* end \*\/
--.*
-贪婪扫描到:$
--字符串末端的锚s
标志以便.
包括换行符