const regex = /((?:(\w{1}|\d).+([\.?\!\)\s]|\b)?)+)|\s?([\w ]+[\.\?!] )/gim;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('((?:(\\w{1}|\\d).+([\\.?\\!\\)\\s]|\\b)?)+)|\\s?([\\w ]+[\\.\\?!] )', 'gim')
const str = `What about... this sentence?
Here's a list of things:
* one,
continued
- two.
* three,
- four
- five
1. Numbered one,
continued
2. numbered two.
3. numbered three.
every sentence starts with a capital. let's have that rule. but
what is a sentence?
42 is the answer.
I got a memory leak of the whole client-chat direcrive. sdf
this is a sentence
that continues down here. while this is a different sentence. (can we find sentences in brackets?)
Sentences sometimes (but not always), contain bracketed sections, e.g. as in this sentence; ok?
a sentence with no final punctuation should end if double-spaced
authorize.net Node.js filename-ish words & such don't terminate a sentence
I want to move my website from example.net to example.com blah blah blah.
I want to move my website from example.net to example.com blah blah blah
I want to move my website from example.net to _xCodexBlockxPlacexHolderx_
example.com blah blah blah.
_xCodexBlockxPlacexHolderx_
More than a 10% with 1.5 to 2 global load, etc.) to 1st level Flume collectors.
I am using AngularJS 1.3.0, but even after upgrade to 1.4.9 it still happens. (That should be just ONE sentence.)
A simple sentence, ending with punctuation.
A sentence without end punctuatione, ending with double-space
"A sentence in quotes." "Ok with that?" "punctuation after the close quote"!
###This is a heading
Text in a link [is part of the sentence][1].
Another sentence. And another sentence? End of file!`;
// 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