如何使用 php 正则表达式在两个垂直条内获取文本

How can I get the text inside two vertical bars with php regex

我正在尝试获取 json 的两个竖线内的文本 string.I 正在解析维基百科数据和 json.The 结构的新功能 weird.Any 有帮助吗?

 {{Infobox အတ္ထုပ္ပတ္တိ
 | အမည် =စိုးသူ 
 | ဓာတ်ပုံ =Soe Thu.jpg
 | သက်တမ်း = 
 | မွေးသက္ကရာဇ် = [[နိုဝင်ဘာ]] ၃၀ ရက်
 | အမည်ရင်း =စိုးသူလွင် 
 | မိဘအမည် =ဦးခင်မောင်လွင်+ဒေါ်ခင်သူဇာ
 | မွေးဖွားရာဒေသ= 
 | နိုင်ငံသား =[[Image:Flag of Myanmar.png|25px]] မြန်မာ
 | လူမျိုး =ဗမာ
 | ကိုးကွယ်သည့်ဘာသာ =ဗုဒ္ဓဘာသာ
 | ပညာအရည်အချင်း = M.B;B.S
 | အလုပ်အကိုင် = ဆရာဝန် ရုပ်ရှင်သရုပ်ဆောင်၊ အဆိုတော်
 | ကြင်ဖော် = ခင်မြမြဝတ်မှုန်ဆွေ
 | သားသမီး =
 | ထင်ပေါ်ကျော်ကြားမှု =အကယ်ဒမီရ မင်းသား
 | ထင်ရှားသည့်လက်ရာများ=
 | ရရှိခဲ့သည့်ဘွဲ့တံဆိပ်များ=မြန်မာ့ ရုပ်ရှင် ထူးချွန်ဆု
 | ကွယ်လွန်ရက် =
 | ကွယ်လွန်ရာဒေသ=
 | လက်မှတ်=
 | ကွန်ယက် =http://www.facebook.com/pages/Soe-Thu
  }}

我在 php 中试过这个。

 $result=explode("|",$str);
  var_dump($result);

但我认为这不是正确的方法。

你可以使用这个正则表达式

(?<=\|)[^|]+(?=\|)

查看演示 Here

我注意到你有这段文字[[Image:Flag of Myanmar.png|25px]]

因此您也可以使用此正则表达式,因为 Myanmar.png|25px 中的 | 可能会导致您的情况出现问题

(?<=\|).+?(?=\|\W)

检查这个演示 Here