Я предполагаю, что вы, возможно, пытаетесь написать выражение, возможно, немного похожее на:
\w+(?=[!?.:;,])
const regex = /\w+(?=[!?.:;,])/gm;
const str = `I think, therefore I am.
Je pense; donc je suis!
I don't think: therefore I am not?
`;
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}`);
});
}
Если вы хотите упростить / изменить / изучить выражение, это было объяснено на верхней правой панели regex101.com . Если хотите, вы также можете посмотреть в эту ссылку , как она будет сопоставляться с некоторыми примерами входных данных.
RegEx Circuit
jex.im визуализирует регулярные выражения:
![enter image description here](https://i.stack.imgur.com/FqgVH.png)