preg_match_all을 사용하여 문자열의 지정된 키워드를 검색하고 발견 된 경우 해당 키워드 앞뒤에 몇 단어를 선택합니다. 여기 키워드가 키워드, $ 이전과 $ 다음에 많은 단어가 선택해야하는 방법을 나타내는 번호는, $ 텍스트가 메인 캐릭터와 $ 출력 결과 배열되어있다 $으로, preg_match_allPHP preg_match_all이 원하는 출력을 반환하지 않습니다.
preg_match_all('~\b(?:[^ ]+){0,'.$prev.'}'.trim($keyword).'(?: [^ ]+){0,'.$next.'}\b~i',$text,$output);
이하로 사용하고 있습니다. 내 캐릭터가 여기에
PROFIT & LOSS NOFORMING P 152 22. ADDITIONAL INFORMATION: A) AUDITORS REMUNERATION (EXCLUDING SERVICE TAX) (` in crores) ParticularsCurrent yearPrevious year As audit fees (including limited review) 3.45 2.42
미만이면 그래서 키워드가 "감사 비용"나는이
EXCLUDING SERVICE TAX) (` in crores) ParticularsCurrent yearPrevious year As audit fees (including limited review) 3.45 2.42
처럼 그러나 아래의 문자열 출력 원하는 얻을이며, 내 키워드와 다음 단어가없는 경우 경우 그 사이의 공백은 해당 문자열 앞에 몇 단어 만 반환하지만 그 키워드 다음에 나오는 단어는 반환하지 않습니다.
PROFIT & LOSS NOFORMING P 152 22. ADDITIONAL INFORMATION: A) AUDITORS REMUNERATION (EXCLUDING SERVICE TAX) (` in crores) ParticularsCurrent yearPrevious year As audit fees(including limited review) 3.45 2.42
은 그냥 좋은 말 또한 내 키워드의 경우 다음 단어를 얻는 방법, 여기에 나를 인도
EXCLUDING SERVICE TAX) (` in crores) ParticularsCurrent yearPrevious year As audit fees
를 반환하고 그 다음 단어 사이에 공백이 없습니다입니다.
'~\b(?:\S+\s+){0,10}Audit Fees(?:\s*\S+){0,5}\b~'
참조 : 당신은 단지 키워드 뒤의 단어에 대해 고민하는 경우에
https://www.regex101.com/r/wY6sP3/1 – splash58
헤이 @ splash58 위대한 작품 남자, 그것이 마치 마법처럼 일했다 , 고맙습니다. 답을 게시하십시오. 올바른 답을 선택하겠습니다. –
@ChangezKhan : 키워드 앞뒤에 단어 사이에 공백이 있으면 어떨까요? –