簡體   English   中英

正則表達式獲取::之間的字符串,不帶任何空格

[英]regular expression get string between :: without any whitespace

我在正則表達式上遇到麻煩。 我正在編寫微笑系統,並使用正則表達式從字符串中獲取微笑代碼,例如:laugh::haha: 我想獲得::之間的字符串,除了字母字符外什么都沒有。

<?php
$a="hello my dear :smile: ho r u?";
$a=preg_replace("/:([a-zA-Z]):/","<b>$1</b>",$a);
//or
$a=preg_replace("/:(\w):/","<b>$1</b>",$a);
echo $a;
?>

這些正則表達式均無效。 我怎么解決這個問題?

您必須允許使用+量詞進行一次或多次匹配:
這應該工作:

$a = preg_replace("/:([a-zA-Z]+):/","<b>$1</b>",$a);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM