我试图理解这个正则表达式的含义:
/^\s*[^#].*?\s*:\s*([a-f0-9.:]+?)\s*-\s*([a-f0-9.:]+?)\s*$/
我正在尝试理解nodejs的模块,因为我不是正则表达式的专家,所以这有点难。
如果有人能翻译那个表达,那将会非常有帮助。
很好的答案。
我想要了解的是以下功能:
var parseBlocklist = function(filename) {
var blocklistData = fs.readFileSync(filename, { encoding: 'utf8' });
var blocklist = [];
blocklistData.split('\n').forEach(function(line) {
var match = null;
if ((match = /^\s*[^#].*?\s*:\s*([a-f0-9.:]+?)\s*-\s*([a-f0-9.:]+?)\s*$/.exec(line))) {
blocklist.push({
start: match[1],
end: match[2]
});
}
});
return blocklist;
};
目前我意识到:
该函数将文件作为参数并读取整个内容
之后,对于组成文件的每一行内容,使用正则表达式执行某些操作。
似乎这个"的结果"被推入阵列。如果可以,请更好地解释此功能的目的。
答案 0 :(得分:0)
给定的正则表达式是多个正则表达式的组合,请记住,您可以将这个复杂的正则表达式分解为多个较小的正则表达式,并且每个较小的正则表达式都可以轻松翻译
请参阅此Wiki页面以查找每个小正则表达式部分的含义 http://en.wikipedia.org/wiki/Regular_expression
你的正则表达式可以分解为
/^ Start of line
\s* zero or more space non white character
[^#].? not equal to hash atleast one
\s non white character
: colon
\s* zero or more space non white character
([a-f0-9.:]+?) hexa digit (one or more)
\s* zero or more space non white character
- dash
\s* zero or more space non white character
([a-f0-9.:]+?) hexa digit (one or more)
\s* zero or more space non white character
$/ end of line
答案 1 :(得分:0)
/ ^行首
\ s *可选空白
[^#]除了#
以外的任何内容。*?任何负担
\ s *更多空格
:冒号
\ s *更多空格
([a-f0-9.:]+?)一些十六进制但允许。并且:出于某种原因
\ s *更多空格
\ s *更多空格
([a-f0-9.:]+?)more hex
\ s *更多空格
$ /行尾