2015-06-11 59 views
1

如何使Preg匹配到搜索字符串使用.,',"#?我試過使用下面的代碼,但如果字符串包含.,``,它不起作用。如何將Preg Match添加到與點匹配的字符串中,撇號

(preg_match("/\b".preg_quote($txtsize,'/')."\b/i", $row['ItemDescription'])

使用上面的代碼我不能得到這個在搜索31X15.50-15 12 PLY TRAXION HF2或或1.75"X11.500"

謝謝

+0

什麼是'$ txtsize'?更好地展示一些示例輸入和預期匹配 – anubhava

+0

@anubhava包含文本框$ txtsize = $ _REQUEST ['search_by_size']中的值; – Aaron

+0

是'31X15.50-15 12 PLY TRAXION HF2''$ row ['ItemDescription']'或'$ txtsize'?哪一個請發佈其他變量值。 – chris85

回答

1

您可以使用這樣的正則表達式:

^[a-z.'"#]+$ 
     ^--- Put all the characters you consider valid within the character class 
      define as [...] 

圖形更容易理解......

Regular expression visualization

Working demo

您可以使用此代碼

$re = "/^[a-z.'\"#]+$/mi"; // Notice insensitive flag: i 
$str = "YOUR STRING HERE"; 

preg_match($re, $str, $matches); 

但是,如果你想通過這些字符串:

31X15.50-15 12 PLY TRAXION HF2 
31X15.50 

你得允許空格,連字符和數字在你的正則表達式,所以你必須使用:

^[a-z.'"# 0-9-]+$ 
     ↑ 
     | below the code 
     | 
$re = "/^[a-z.'\"#]+$/mi"; 
+0

非常感謝@Fede我將代碼更新爲$ re =「/^[az.'\"#]+$/mi」; $ str = $ _REQUEST ['search_by_size'];而Preg Match看起來像elseif(( $ str ['ItemDescription'] == $ str)){...顯示結果...} $ && preg_match($ re,$ str,$ row ['ItemDescription']) 。但是沒有運氣我做錯了什麼? – Aaron

+1

@Aaron我不知道你的變量有什麼值,我想你應該用調試器進行故障排除 –

相關問題