亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用正則表達式替換圓括號的任何括號?

如何使用正則表達式替換圓括號的任何括號?

PHP
素胚勾勒不出你 2021-08-27 09:47:34
這是代碼:$string="{1},[2],(3),<4>";// Replaces closing square, curly, angle brackets with round brackets$string = preg_replace('/\{\[\</', '(', $string);$string = preg_replace('/\}\]\>/', ')', $string);它根本沒有替換那個字符串......還有比這更好的編碼嗎?謝謝。
查看完整描述

3 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

這里不需要正則表達式:

$string = str_replace(['{','[','<'], '(', str_replace(['}',']','>'], ')', $string));

或者使用一次調用,strtr但數組會更長。


查看完整回答
反對 回復 2021-08-27
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

您可以使用


$string="{1},[2],(3),<4>";

$what = ['~[{[<]~', '~[]}>]~'];

$with = ['(', ')'];

$string = preg_replace($what, $with, $string);

echo $string;

這里,


[{[<]-匹配三個字符之一的字符類:{, [或<

[]}>]- 匹配三個字符之一:], }or >(注意,]當它是類中的第一個字符時,字符類內部不必轉義)。

請參閱PHP 演示。


您也可以使用單個調用preg_replace_callback:


$string = preg_replace_callback('~([{[<])|[]}>]~', function ($m) {

    return !empty($m[1]) ? "(" : ")";

 }, $string);

請參閱此 PHP 演示。


該([{[<])模式將開始標點捕獲到組 1 ( $m[1]) 中,如果找到匹配項后組不為空,(則返回,否則)替換為。


查看完整回答
反對 回復 2021-08-27
  • 3 回答
  • 0 關注
  • 229 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號