import re
txt = '''
26. Эта замечательная жизнь (It’s a Wonderful Life) (1946)
Мысли о самоубийстве одолевают в определенные периоды жизни любого че...
27. Однажды на Диком Западе (C’era una volta il West) (1968)
Об этом вестерне Серджио Леоне можно писать долго. Режиссер в очередной раз
'''
m = re.findall(r'(?m)^\d+\.\s*(.*)', txt)
print(m)
$text = 'клиент: краеугольный менеджер: желтый цвет';
$pattern = '/(клиент|менеджер):\h*(.*?)\h*(?=$|клиент:|менеджер:)/';
preg_match_all($pattern, $text, $matches);
$result = array_combine($matches[1], $matches[2]);
var_dump($result);
Пробовал добавлять что-то типа (\?|\$) - не работает.
Что ему туда скормить?
(.+?)(\?|$)
Unicode property support
Another special sequence that may appear at the start of a pattern is (*UCP). This has the same effect as setting the PCRE_UCP option: it causes sequences such as \d and \w to use Unicode properties to determine character types, instead of recognizing only characters with codes less than 128 via a lookup table.
\w
совпадало не только с латиницей нужно добавить (*UCP).(*UCP)\w+
(^.*:.*):(.*$)
$1
^.*:.*\K:.*$
, а строку замены оставить пустой..*
точка совпадает с любыми символами кроме "\n". Чтобы точка совпадала и с символами новой строки достаточно добавить (?s)'pattern' => '(^(?xi)
(?=(?:.*[0-9]){2})
(?=(?:.*[a-z]){2})
(?=(?:.*[!"#$%&\'()*+,./:;<=>?@\[\]^_`{|}~-]){2})
.{6,}$
)'
$text = preg_replace(
'#<a\b.*?</a>(*SKIP)(*F)|ipsum dolor#s',
'<a href="/article/2020">$0</a>',
$text
);
let s = "$('#blabla').html('blabajsj')";
let m = s.match(/\$\('([^']+)'\)\.html\('([^']+)'/);
console.log(m);