簡體   English   中英

PHP Regex僅接受特定字符

[英]PHP Regex to accept only specific characters

你能幫助我嗎? 我試圖做一個PHP正則表達式只接受: 包括AZ,az,0-9,(,),! 和帶重音的單詞( áéíóúÁÉÍÓÚ )以過濾列表。

我嘗試了一下方法並進行了很多搜索,但沒有獲得成功...該怎么辦?

@編輯:

if (!preg_match("/^[\p{L}-]*$/u", $line)){

我已經嘗試過在此線程中使用它,但是沒有用。

我想做什么? 僅接受我要過濾此列表的單詞: 列表

@ edit2:已經嘗試使用iconv,mb_convert_encoding等將convertind轉換為UTF8 ...

它認為這是您要尋找的:

if (preg_match("/[a-zA-Z0-9áéíóúÁÉÍÓÚ\s]*/", $line)){
    // line is ok
}

您可以在這里進行測試: https//regex101.com/r/4Ozxw2/1

就像是

<?php

$strings = ['hash#', 'percent%', '!exc', 'ó','-',',','num1'];

foreach($strings as $v) {
    if (preg_match("/^[\p{L}A-Za-z0-9,!]*$/u", $v)) {
        print $v . '<br/>';
    }
}

用這個...

 <?php $strings = ['test(yes)h#', 'test2%', '!test3', 'ó','-',',...','test']; foreach($strings as $v) { if (preg_match("/^[\\p{L}A-Za-z0-9! | #\\((.*?)\\)#]*$/u", $v)) { print $v . '<br/>'; } } ?> 

我認為這可以解決您的問題。

暫無
暫無

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

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