const regex = /\s*time:(.*?)\s*host:([\d\.]{0,15})\s*user:(.*?)\s*forwardedfor:(.*?)\s*req:(.*?)\s*method:(.*?)\s*uri:(.*?)\s*protocol:(.*?)\s*status:(\d*)\s*size:(\d*)\s*reqsize:(\d*)\s*referer:(.*?)\s*ua:(.*?)\s*vhost:(.*?)\s*reqtime:([\d\.]*)\s*cache:(.*?)\s*apptime:(.*?)\s*https:(.*?)\s*session_id:(.*?)\s*/;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('\\s*time:(.*?)\\s*host:([\\d\\.]{0,15})\\s*user:(.*?)\\s*forwardedfor:(.*?)\\s*req:(.*?)\\s*method:(.*?)\\s*uri:(.*?)\\s*protocol:(.*?)\\s*status:(\\d*)\\s*size:(\\d*)\\s*reqsize:(\\d*)\\s*referer:(.*?)\\s*ua:(.*?)\\s*vhost:(.*?)\\s*reqtime:([\\d\\.]*)\\s*cache:(.*?)\\s*apptime:(.*?)\\s*https:(.*?)\\s*session_id:(.*?)\\s*', '')
const str = `time:27/Mar/2015:17:56:12 +0900 host:210.210.210.210 user:- forwardedfor:- req:- method:- uri:- protocol:- status:200 size:0 reqsize:0 referer:-ua:- vhost:www.web.com reqtime:59.992 cache:- apptime:- https: session_id: `;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
if ((m = regex.exec(str)) !== null) {
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions