Я хочу извлечь все слово, которое происходит между 'ob'
и ','
, т.е. Из строки
' QS=TCE,Ob=Web technology,OB=Product SPe,OB=Dev profile,OB=Computer Management,oB=Hardware Services,cd=sti,CD=com,cd=ws'
Я хочу получить следующие результаты:
Web technology,Product SPe,Dev profile,Computer Management,Hardware Services
Я пробовал это:
preg_match_all("!\OB=(\w+)\,!", ' QS=TCE,Ob=Web technology,OB=Product SPe,OB=Dev profile,OB=Computer Management,oB=Hardware Services,cd=sti,CD=com,cd=ws', $matches);
print_r($matches);
Но это не дает никакого результата. Что в этом плохого?
Вам нужно учитывать пробелы между вашими словами, я бы использовал отрицание здесь. Также вам нужно удалить escape-последовательности, предшествующие "O" и запятой, и включить модификатор режима i
(без учета регистра).
preg_match_all('!OB=([^,]+),!i', $str, $matches);
print_r($matches[1]);
\
'ы