Нужно взять число
\w+
\w+
- это не число. Число - это минус (возможно отсутствует), затем целая часть (цифры), затем дробная часть (точка и цифры, возможно отсутствует).между парой @@
[@@]
@{2}
. Или можно просто два раза нужный символ указать.re.findall(r'(?<=@@)-?\d+(?:\.\d+)?(?=@@)', text)
/(?=.*1)(?=.*2)(?=.*3)/.test(str)
[ 1, 2, 3 ].every(n => str.includes(n))
new Set(str.match(/[123]/g)).size === 3
g
. Хотите найти всё - используйте preg_match_all. const arr = useMemo(() => {
const multiple = [ 'Format', 'Stars' ];
return str
.split('\n\n')
.map(n => n
.split('\n')
.reduce((acc, m) => (
m = m.split(/(?<=^[^:]+): /),
acc[m[0]] = multiple.includes(m[0]) ? m[1].split(', ') : m[1],
acc
), {}));
}, [ str ]);
<ul>
{arr.map(n => (
<li>
<h3>{n.Title}</h3>
<div>Year: {n['Release Year']}</div>
<div>Format: <ul>{n.Format.map(m => <li>{m}</li>)}</ul></div>
<div>Stars: <ul>{n.Stars.map(m => <li>{m}</li>)}</ul></div>
</li>
))}
</ul>
$color = preg_match('~^цвет (.+)~ui', $str, $match) ? $match[1] : null;
const replacements = {
worksAmount: 187,
reviewsAmount: 666,
};
const newStr = str.replace(/\$\$\[(\w+)\]/g, (m, g1) => replacements[g1] ?? m);