我使用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
請指引我在這裏,如何讓接下來的話也如果我的關鍵字,它的下一個單詞有沒有空間在他們之間。
https://www.regex101.com/r/wY6sP3/1 – splash58
嘿@ splash58,偉大的工作的人,它的工作就像一個魅力, 謝謝。發佈你的答案,我會選擇一個正確的答案。 –
@ChangezKhan:如果在關鍵字之前或之後的單詞之間有非空格,該怎麼辦? –