[英]Extract text from a string that contains brackets in PHP
我有一個國家名稱和代碼的字符串
KT16(Ottershaw)
現在我需要從()
提取文本。 我需要提取Ottershaw。 我怎么能用PHP做到這一點。
應該 :
preg_match('/\(([^\)]*)\)/', 'KT16(Ottershaw)', $matches);
echo $matches[1];
只需獲取第一個左括號和最后一個右括號之間的子串:
$string = "KT16(Ottershaw)";
$strResult = substr($string, stripos($string, "(") +1,strrpos($string, ")") - stripos($string, "(")-1);
以下RegEx應該有效:
/\[(.*?)\]/
這是一個示例代碼,用於提取'['和']'之間的所有文本,並將其存儲為2個單獨的數組(即一個數組中括號內的文本和另一個數組中括號外的文本)
function extract_text($string)
{
$text_outside=array();
$text_inside=array();
$t="";
for($i=0;$i<strlen($string);$i++)
{
if($string[$i]=='[')
{
$text_outside[]=$t;
$t="";
$t1="";
$i++;
while($string[$i]!=']')
{
$t1.=$string[$i];
$i++;
}
$text_inside[] = $t1;
}
else {
if($string[$i]!=']')
$t.=$string[$i];
else {
continue;
}
}
}
if($t!="")
$text_outside[]=$t;
var_dump($text_outside);
echo "\n\n";
var_dump($text_inside);
}
輸出:extract_text(“你好,你好嗎?”); 將產生:
array(1) {
[0]=>
string(18) "hello how are you?"
}
array(0) {
}
extract_text(“你好[http://www.google.com/test.mp3]你好嗎?”); 會產生
array(2) {
[0]=>
string(6) "hello "
[1]=>
string(13) " how are you?"
}
array(1) {
[0]=>
string(30) "http://www.google.com/test.mp3"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.