const regex = /^I await your input\.(?=\d|\-)|^(?:I await your input\.(?:x|\/|\*|\+|\.))|^0+(?=0|0.|[1-9])|(?<=\.\d+)\.$|^(?:x|\/|\*|\+|\.)|(?<=(?:x|\/|\*|\-|\+))0(?=\d+)|(?<=\.)\-$|(?<=^\-)(?:x|\*|\/|\-|\+|\.)|(?<=\.\d+)(x|\*|\/|\-|\+)?\./gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^I await your input\\.(?=\\d|\\-)|^(?:I await your input\\.(?:x|\\\/|\\*|\\+|\\.))|^0+(?=0|0.|[1-9])|(?<=\\.\\d+)\\.$|^(?:x|\\\/|\\*|\\+|\\.)|(?<=(?:x|\\\/|\\*|\\-|\\+))0(?=\\d+)|(?<=\\.)\\-$|(?<=^\\-)(?:x|\\*|\\\/|\\-|\\+|\\.)|(?<=\\.\\d+)(x|\\*|\\\/|\\-|\\+)?\\.', 'gm')
const str = `|(?<=(?:x|\\/|\\*|\\-|\\+|\\.))(?:x|\\/|\\*|\\+|\\.)
/When ready, just start over from the original working regex.
|(?<=\\d+)(x|\\*|\\/|\\-|\\+)(?=x|\\*|\\/|\\-|\\+)
|(?<=x|\\*|\\/|\\-|\\+|\\.)\\.
|\\.(?=x|\\*|\\/|\\-|\\+|\\.)|(?<=\\d+\\.\\d+(?:x|\\*|\\/|\\-|\\+))\\.|(?<=\\d+\\.\\d+)\\.
Seems like I don't need this one: |\\-(?=-)
40.0.
5.6+.
7.3.
2222-
2222--
2222.-
0.00002/
111.222*x
3838.3
0.0000x.
1+2.333.x
-/1
-/1/-
1.1/+
0.2/*
333/x
4444/-
888-
0x/
0..+
0xx
3x.
3.xx
0.1.
++++++++++++++++++++++++++++++++++
(?<=\\d+(?:x|\\/|\\*|\\-|\\+|\\.))(?:x|\\/|\\*|\\-|\\+|\\.)
(?<=\\.\\d+(?:x|\\/|\\*|\\-|\\+|\\.))(?:x|\\/|\\*|\\-|\\+|\\.)
(?<=\\d+(?:x|\\/|\\*|\\-|\\+|\\.))(?:x|\\/|\\*|\\-|\\+|\\.)
(?<=\\d+)(?:x|\\/|\\*|\\-|\\+|\\.)(?=x|\\/|\\*|\\-|\\+|\\.) // This selects any math symbol directly after a math symbol such as 111.222*x (x will be selected)
?:non-capturing group
I await your input.4
I await your input.+
abcdefghijklmnopqrstuvwxyz
....
0000000
000000033300
00003304
0000004
000000.
2.5+88889.4756x8.8/0.125+04.5
2.5+88889.4756x8.8/0.125+0.45
2.5+88889.4756x8.8/0.125+0
2.4+2.00003
2.4+04
0x9-95.8/00
/*
+-+
000000004
6.6.4444.4.4.5555.588885.5.
6.6.4444.4.4.5555.55.5343.
4+5
88889993.4884.
4.
8888.8.4
8.8.4.8
4.56850.000000.0.100.324000+8.343.333.4400000.00000
0.13453.383883...+388338.383838+3.4/833.3x8*4333-8-+++**3*3/*3
0000.1
+
-
.
*
/
x0000000
000000004
0.1334343.
0123456789
000001234
0000.
_+-*/|\\/*
@#!#\$
^*()
.000
copied and saved regex:
|(?<=.[\\d+])\\.
_______________________________
(?<=\\d|\\d)\\.\$
// sort of works: \\.\\d+\\.\$(?!\\d+\\.) it takes of the .allnumbesanddecimal from here
(?<=\\.)\\d+\\.\$
(?<=\\.\\d+)\\.\$
(\\.\\d+)\$
(?<=[\\d]\\.[\\d])\\.
Negate these:
[^0\\.1]`;
// 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