【问题标题】:Regular expression testing with Greek characters php使用希腊字符 php 进行正则表达式测试
【发布时间】:2014-03-07 10:49:52
【问题描述】:

今天,正则表达式变得越来越好。我一直在谷歌搜索人们说有效的代码......但它不适合我!

背景: 我想验证用户对文本字段的输入。输入可以包含: 1)。英文字符和数字 或者 2)。希腊字符和数字 如果发现符号 (&%!) 等,则不应匹配!

目前: 一直在 PHP 中测试这个 RegEx

/^[\p{Greek}\s\d a-zA-Z]+/u

用“γφψη 677”测试作品 用“γφψη 677###hello”测试也有效!! - 但我希望这失败

<?php
header("content-type: text/html;charset=utf-8");

if (preg_match_all('/^[\p{Greek}\s\d a-zA-Z]+/u', 'γφψη 677###hello')){
    echo "ok!";
}
else {
    echo "no!";
}
?>

有什么想法吗?

提前谢谢你!!

【问题讨论】:

标签: php regex character


【解决方案1】:

你的正则表达式的问题:/^[\p{Greek}\s\d a-zA-Z]+/u 是它告诉你的引擎开始匹配什么。话虽如此,它没有提供任何关于在字符串末尾做什么的说明。将您的正则表达式更改为:/^[\p{Greek}\s\d a-zA-Z]+$/u(注意末尾的$)应该可以解决问题。

^$ 组合实质上指示正则表达式引擎从字符串的开头开始匹配(^ 和结尾的$)。

【讨论】:

  • 好东西!谢谢
猜你喜欢
  • 2011-01-30
  • 2011-08-20
  • 2016-12-28
  • 2020-10-16
  • 2018-05-28
  • 1970-01-01
  • 2022-01-10
  • 2013-11-26
  • 2018-04-09
相关资源
最近更新 更多