[英]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%(可能會更改)。 我的正則表達能力很弱。
提前致謝
使用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.