Xeger 是更富有表现力的 JavaScript 正则表达式,Xeger 发音为 “zeeger”。
使用:
var xeger = require('xeger'); /* Parsing a URL. Getting the schema, host, path, and url params */ /* Instead of this */ var boringRegex= /(https?)\:\/\/([^\/]+)(.+)\?(.*)/; /* Write this! */ var coolRegex = xeger(function (x) { /* schema */ x.group(function (x) { x.literal('http'); x.literal('s', { optional: true }); }); x.literal('://'); /* host */ x.group(function (x) { x.not('/', { multiple: true }); }); /* path */ x.group(function (x) { x.any({ multiple: true }); }); x.literal('?'); /* query params */ x.group(function (x) { x.any({ multiple: true, optional: true }); }); }); var matched = coolRegex.exec('https://www.google.com/search?q=my_search');
匹配:
[ 'https://www.google.com/search?q=my_search', 'https', /* schema */ 'www.google.com', /* host */ '/search', /* path */ 'q=my_search', /* query params */ index: 0, input: 'https://www.google.com/search?q=my_search' ]