Если мы хотим, чтобы в нашем поиске были слова с ошибками, мы могли бы сделать это, используя список символов, ограниченный слева и справа символом ()
, возможно, похожим на:
\([carmel-]+\)|\([vanila-]+\)
RegEx
Если это выражение нежелательно, его можно изменить или изменить в regex101.com .
RegEx Circuit
jex.im визуализирует регулярные выражения:
Тест
$re = '/\([carmel-]+\)|\([vanila-]+\)/m';
$str = '(-caramel-) John Cina (-vanilla-)(-caramel-)2019-05-19 07:31:05(-vannila-)';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Демо
Этот фрагмент показывает, что если выражение работает:
const regex = /\([carmel-]+\)|\([vanila-]+\)/gm;
const str = `(-caramel-) John Cina (-vanilla-)(-caramel-)2019-05-19 07:31:05(-vannila-)`;
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}`);
});
}