Regular expression: Difference between revisions

Jump to navigation Jump to search
Tags: Mobile edit Mobile web edit
Line 478: Line 478:
參考資料
參考資料
* [https://stackoverflow.com/questions/401771/how-can-i-find-non-ascii-characters-in-mysql How can I find non-ASCII characters in MySQL? - Stack Overflow]
* [https://stackoverflow.com/questions/401771/how-can-i-find-non-ascii-characters-in-mysql How can I find non-ASCII characters in MySQL? - Stack Overflow]
==== 尋找 ASCII 字元 in MySQL ====
code:
<pre>
if (preg_match('/[^\x20-\x7f]/', $keyword) === 0) {
  echo "The keyword is ASCII only";
}
</pre>
Explanation:
* {{kbd | key=<nowiki>/[^\x20-\x7f]/</nowiki>}} 是一個正規表達式:
** {{kbd | key=<nowiki>\x20</nowiki>}} 代表空格字符 (ASCII 32)
** {{kbd | key=<nowiki>\x7f</nowiki>}} 代表 DELETE 字符 (ASCII 127)
** {{kbd | key=<nowiki>[^\x20-\x7f]</nowiki>}} 表示「任何不在 \x20 到 \x7f 範圍內的字符」
這個範圍 {{kbd | key=<nowiki>(\x20-\x7f)</nowiki>}} 基本上涵蓋了所有可印刷的 ASCII 字符
=== 0 表示沒有匹配到任何不在這個範圍的字符
如果返回 0,表示字串中只包含 ASCII 字符
如果返回 1,表示字串中包含非 ASCII 字符(如中文、日文等)


==== 尋找英文字、數字、破折號(-)或底線(_)字元 in MySQL ====
==== 尋找英文字、數字、破折號(-)或底線(_)字元 in MySQL ====

Navigation menu