const regex = /(?:\"(?:(?<=\"(?=[^\n]))[^\n]+?(?=(?<!\\))(?=\"))?\")|(\B'(?:(?<='(?=[^\n]))[^\n]+?(?=(?<!\\))(?='))?')/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?:\\"(?:(?<=\\"(?=[^\\n]))[^\\n]+?(?=(?<!\\\\))(?=\\"))?\\")|(\\B\'(?:(?<=\'(?=[^\\n]))[^\\n]+?(?=(?<!\\\\))(?=\'))?\')', 'gm')
const str = `
1. Valid double-quoted strings:
- "Hello"
- "This is a test"
- "123"
- "Special characters: @#\$%^&*()_+"
- "Escape sequence: \\n"
2. Valid double-quoted strings with additional characters or variables:
- " test aaaaa \\" " + asdf
- " test " + ( "aaaaa" ) + gdf
- " test \\" " + \`" aaaa " + dfg
- " test ' aaaaa \\" " + dfg
- ""
3. Valid double-quoted strings with special characters:
- "sas''as\\"a1\\'2 ! -_?:sa"
- "''"
- "\\abnb\\ajhgf\\crt098& \\"'"
4. Invalid double-quoted strings:
- " test " + ( "aaaaa" ) \\" saf
- "\\\\ + \\* test " \\\$ \\. dsdfs
- (\\" test \\" " + " aaaa " sfgd
- ' test ' + aas ( "aaaaa" ) + '\\ sd
- '\\\\ + \\* test ' \\\$ \\. trace
- (' test ' as ' + ' aaaa '
- '""'
- '"sas'
- 'ads'
- 'asdasd\\"asdsa'
- "klkl"klkl
- "asa\\'sasa\\\\"
- \\'\\\\\\'
- "hhhh"klkl"
- 'jkjkjk'klklk'
- '\\"\\\\\\"'
- ''
- '\\"asa\\'sasa\\\\\\"'
- "sasasasa\\\\\\\\\\\\"
1. Valid single-quoted strings:
- 'Hello'
- 'This is a test'
- '123'
- 'Special characters: @#\$%^&*()_+'
- 'Escape sequence: \\n'
2. Valid single-quoted strings with additional characters or variables:
- ' test aaaaa \\' ' + asdf
- ' test ' + ( 'aaaaa' ) + gdf
- ' test \\' ' + ' aaaa' + dfg
- ' test " aaaaa \\' ' + dfg
- ''
3. Valid single-quoted strings with special characters:
- 'sas""as\\'a1\\"2 ! -_?:sa'
- '""'
- '\\abnb\\ajhgf\\crt098& \\'""'
4. Invalid single-quoted strings:
- ' test ' + ( 'aaaaa' ) \\' saf
- '\\\\ + \\* test ' \\\$ \\. dsdfs
- (\\' test \\' + ' aaaa ' sfgd
- " test \\" " + " aaaa " sfgd
- ' test ' + aas ( 'aaaaa' ) + '\\ sd
- '\\\\ + \\* test ' \\\$ \\. trace
- (' test ' as ' + ' aaaa '
- "''"
- 'sas"
- "ads'
- 'asdasd\\'asdsa'
- "klkl"klkl
- "asa\\'sasa\\\\"
- \\'\\\\\\'
- 'hhhh"klkl\\'\\
- \\'jkjkjk"klklk'
- "\\'\\\\\\'"
- ''
- '\\"asa\\'sasa\\\\\\"'
- 'sasasasa\\\\\\\\\\\\'
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// 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