簡體   English   中英

用preg_match檢查一些單詞

[英]Check some words with preg_match

我需要用preg_match檢查一些單詞。 如果單詞包含數字和. ,我想回聲“確定”。

可以說我想解決這個問題:

4814.84dszs  //ok
412.84.61.412  //ok
hello.4you //ok
welcome.user //not ok
481221222 // not ok

我用了這個:

if (preg_match('/^[0-9][.]+$/', 'MY_WORD_HERE'))
{
echo 'ok';
}

但這並不能給我確切的結果。

用這個:

if (preg_match('/([0-9]+[\.]+|[\.]+[0-9]+)$/', 'MY_WORD_HERE'))
{
echo 'ok';
}

“ +”(加號)表示匹配表達式出現1次或多次

您也可以使用。 並且數字彼此不跟隨,中間還有其他字符:

if (preg_match('/([0-9]+[^0-9\.]*[\.]+|[\.]+[^0-9\.]*[0-9]+)$/', 'MY_WORD_HERE'))
{
echo 'ok';
}

說明:它檢查是否有一個數字后跟一個點,或者是否有一個點后跟一個數字,或者是否有一個數字后跟其他字符,然后是一個點,反之亦然。

嘗試使用這個

        $pattern = '%(?=.*[0-9])(?=.*\.)%';
        if (preg_match($pattern, 'MY_WORD_HERE'))
        {
           echo 'ok';
        }

        ?>

嘗試這個 :

if (preg_match('/(\d+\.)|(\.\d+)/', '4814.84dszs'))
{
echo 'ok';
}

^ ->表示字符串的開頭

$ ->字符串的結尾。

因此,您的模式從頭到尾都說(匹配整個字符串)

如果刪除它,它將匹配字符串中的任何地方,而不是整個字符串。

$pattern = '#^([\d]{1,3})([.][\d]{1,3})([.][\d]{1,3})([.][\d]{1,3})$#';

暫無
暫無

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

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