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' ]
评论