簡體   English   中英

PHP preg_replace正則表達式,獲取括號中可能包含或不包含_和-的數字

[英]PHP preg_replace regex, get number between parenthesis that might or might not contain _ and - sign

這真讓我發瘋! 我需要一個正則表達式來從字符串中提取數字。 該數字可能包含-(減號)或_(下划線)符號,最好使用preg_replace。

示例字符串:“ 這是1個示例(文本),帶有(數字)(01230_12-3) ”。

我需要提取的是(01230_12-3),但沒有括號。

到目前為止,這就是我所擁有的:

$FolderTitle[$Counter]) = "This is 1 example (text) with a (number)(01230_12-3)";
$FolderNumber[$Counter] = preg_replace("/([^0-9-_])/imsxU", '', $FolderTitle[$Counter]);
  • 當使用preg_match() ,輸出變量是必需的,因此我使用速記條件來確定是否存在匹配項,並將必要的值設置為echo。
  • 您需要匹配前導字符(然后用\\K 忘記它,然后匹配盡可能多的合格字符。
  • 這些模式修飾符都不是必需的,因此我刪除了它們。
  • 您可以將我的回聲替換$FolderNumber[$Counter] =
  • 模式中的前導括號必須使用\\進行轉義。
  • \\d[0-9]相同。

代碼:( 演示

$Counter = 0;
$FolderTitle[$Counter] = "This is 1 example (text) with a (number)(01230_12-3)";
echo preg_match("/\(\K[-\d_]+/", $FolderTitle[$Counter], $out) ? $out[0] : 'no match';

輸出:

01230_12-3

暫無
暫無

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

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