示例字符串:
$string = "Buyer must enter coupon code 10OFF100 in shopping cart.";
$string = "Get $20 Off Auto Parts Order Over $150. Use Coupon code: GAPCJ20";
我需要提取代码(10FF100
和GAPCJ20
)。
我试图创建一个preg_match
来查找“优惠券代码”和“优惠券代码:”并立即提取短语或单词。我自己没有太多运气或找到了reg表达。
请一些人发布正确的代码。
感谢您的帮助。
答案 0 :(得分:1)
使用这个PHP代码:
$arr = array("Buyer must enter coupon code 10OFF100 in shopping cart.", "Get $20 Off Auto Parts Order Over $150. Use Coupon code: GAPCJ20");
foreach ($arr as $s) {
preg_match('~coupon code\W+(\w+)~i', $s, $m);
var_dump($m[1]);
}
string(8) "10OFF100"
string(7) "GAPCJ20"
答案 1 :(得分:0)
这会将可选:
与"代码"相匹配预计由alpha和数字组成。
/coupon code:? ([a-z0-9]+)/i
简答:不。
那么如何提高效率呢?那么最好的办法就是将正则表达式与行词典相匹配,其中包含许多您想要支持的示例和格式。然后继续提炼你的正则表达式,直到你获得98%可靠的正则表达式。我说98%,因为你可能已经意识到它永远不会是完美的,因为有这么多:
Free Coupon: Enter this code 8HFnF5
Code for coupon (7859NhF)
Coupons galore! Just put 646GH4 in your basket
Cupon code is 797gGh
Your code for free goodies is 4543G5
Add token "5479_G5t" to your basket for free CD!
答案 2 :(得分:0)
尝试以下方法:
/coupon code[:]? ([\w]*)/i
答案 3 :(得分:0)
我的尝试:
<?php
if (preg_match('/coupon code:?\s+(.+)(\s+|$)/', $str, $matches)) {
list(, $code) = $matches;
echo $code;
}
答案 4 :(得分:0)
首次使用
Buyer must enter coupon code ([^ ]*) in shopping cart.
第二次使用
Get $20 Off Auto Parts Order Over $150. Use Coupon code: (.*)
答案 5 :(得分:0)
我在下面做。
preg_match('/[Cc]oupon code:?(\w+)/',$string,$match);