preg_match一些字符

发布于 2024-12-10 10:28:53 字数 201 浏览 1 评论 0原文

我的 preg_match() 需要一个正则表达式,它应该 preg(允许)以下字符:

字符串只能包含字母、数字和以下标点符号:

  • 句号 (.)
  • 逗号 (,)
  • 破折号(-)
  • 下划线(_)

我不知道如何在正则表达式上完成,但我认为有办法!

I need an regex to my preg_match(), it should preg (allow) the following characters:

String can contain only letters, numbers, and the following punctuation marks:

  • full stop (.)
  • comma (,)
  • dash (-)
  • underscore (_)

I have no idea , how it can be done on regex, but I think there is a way!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南薇 2024-12-17 10:28:53
^[\p{L}\p{N}.,_-]*$

将匹配仅包含(Unicode)字母、数字或您提到的“特殊字符”的字符串。 [...] 是一个字符类,意思是“这里包含的角色之一”。您需要使用 /u Unicode 修饰符才能使其工作:

preg_match(`/^[\p{L}\p{N}.,_-]*$/u', $mystring);

如果您只关心 ASCII 字母,则更容易:

^[\w.,-]*$

或者,在 PHP 中:

preg_match(`/^[\w.,-]*$/', $mystring);
^[\p{L}\p{N}.,_-]*$

will match a string that contains only (Unicode) letters, digits or the "special characters" you mentioned. [...] is a character class, meaning "one of the characters contained here". You'll need to use the /u Unicode modifier for this to work:

preg_match(`/^[\p{L}\p{N}.,_-]*$/u', $mystring);

If you only care about ASCII letters, it's easier:

^[\w.,-]*$

or, in PHP:

preg_match(`/^[\w.,-]*$/', $mystring);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文