const regex = /(?=.)(?=(\p{Cn}))?(?=(\p{Cc}))?(?=(\p{Cf}))?(?=(\p{Co}))?(?=(\p{Cs}))?(?=(\p{Lu}))?(?=(\p{Ll}))?(?=(\p{Lt}))?(?=(\p{Lm}))?(?=(\p{Lo}))?(?=(\p{Mn}))?(?=(\p{Me}))?(?=(\p{Mc}))?(?=(\p{Pd}))?(?=(\p{Ps}))?(?=(\p{Pe}))?(?=(\p{Pc}))?(?=(\p{Po}))?(?=(\p{Pi}))?(?=(\p{Pf}))?(?=(\p{Sm}))?(?=(\p{Sc}))?(?=(\p{Sk}))?(?=(\p{So}))?(?=(\p{Zs}))?(?=(\p{Zl}))?(?=(\p{Zp}))?/sug;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?=.)(?=(\\p{Cn}))?(?=(\\p{Cc}))?(?=(\\p{Cf}))?(?=(\\p{Co}))?(?=(\\p{Cs}))?(?=(\\p{Lu}))?(?=(\\p{Ll}))?(?=(\\p{Lt}))?(?=(\\p{Lm}))?(?=(\\p{Lo}))?(?=(\\p{Mn}))?(?=(\\p{Me}))?(?=(\\p{Mc}))?(?=(\\p{Pd}))?(?=(\\p{Ps}))?(?=(\\p{Pe}))?(?=(\\p{Pc}))?(?=(\\p{Po}))?(?=(\\p{Pi}))?(?=(\\p{Pf}))?(?=(\\p{Sm}))?(?=(\\p{Sc}))?(?=(\\p{Sk}))?(?=(\\p{So}))?(?=(\\p{Zs}))?(?=(\\p{Zl}))?(?=(\\p{Zp}))?', 'sug')
const str = `Hello 270 -,+?`;
// 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