簡體   English   中英

如何使用php中的正則表達式從字符串中獲取值

[英]how to get value from a string using regular expression in php

這是我的弦

$string = "<table><tr><td><a href="https://rads.stackoverflow.com/amzn/click/com/B01IG6C0D4" rel="nofollow noreferrer" target="_blank"><img src="https://images-na.ssl-images-amazon.com/images/I/41ltpJWi8jL._SL160_.jpg" alt="Product Image" style='border:0'/></a></td><td><tr><td>List Price <strike>$17.99</strike></td></tr><tr><td><b>Deal Price: $11.04</b></td></tr><tr><td>You Save: $6.95 (39%)</td></tr><tr><td>Save on the AmazonBasics Foldable Laundry Hamper</td></tr><tr><td>Expires Apr 28, 2017</td></tr></td></tr>";

請幫助我使用PHP中的正則表達式從此字符串中提取39%(可能會更改)。 我的正則表達能力很弱。

提前致謝

使用以下正則表達式(一個或多個數字后跟一個%符號),我就能獲得匹配:

(\d+)\%

示例-https://regex101.com/r/a36Zdl/1

使用preg_match()函數匹配模式\\d{1,}\\s*%表示一個或多個數字(0-9),后跟空格還是不后面,最后是% signal。

preg_match()返回是否匹配模式,如果為正則字符串(捕獲的)將存儲在第三個參數( $m )中。

$string = '<table><tr><td><a href="http://rads.stackoverflow.com/amzn/click/B01IG6C0D4" target="_blank"><img src="https://images-na.ssl-images-amazon.com/images/I/41ltpJWi8jL._SL160_.jpg" alt="Product Image" style=border:0/></a></td><td><tr><td>List Price <strike>$17.99</strike></td></tr><tr><td><b>Deal Price: $11.04</b></td></tr><tr><td>You Save: $6.95 (**39%**)</td></tr><tr><td>Save on the AmazonBasics Foldable Laundry Hamper</td></tr><tr><td>Expires Apr 28, 2017</td></tr></td></tr>';
preg_match('/\d{1,}\s*%/', $string, $m);

要捕獲帶有小數點的數字,此正則表達式(\\d{1,}|\\d{1,}\\.\\d{1,})\\s*%聽起來更好

$string = 'asdasd 36.45%';
echo preg_match('/(\d{1,}|\d{1,}\.\d{1,})\s*%/', $string, $m);

暫無
暫無

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

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