当前位置: 首页 > 知识库问答 >
问题:

php 正则表达式preg_match表达式,用于测试 A-Za-z0-9、空格字符和常用标点符号的字符串

池庆
2023-03-14

我正则表达式有问题。我想使用phppreg_match来确认字符串仅包含大小写字母、数字、空格和标点符号,如…

逗号、句点、加号、破折号、感叹号、冒号、分号、括号

问题:在下面的例子中$regex等于什么?

<?php 
$regex = "??????";
$string = "some user input in a form passed via POST to form processor";
if (preg_match($regex, $string)) {
    echo "Found a match!";
} else {
    echo "The regex pattern does not match. :(";
}
?>

我看了视频,谷歌了几个小时,仍然不能得到这个权利。

感谢您的任何帮助!

共有3个答案

丁宏浚
2023-03-14
/^[a-zA-Z0-9,.!?\-\+:;() ]*$/

参见示例:正则表达式只允许字母、数字、空格、逗号、句号?

谷歌搜索: preg_match数字字母标点符号

编辑:你可以在这里测试https://www.functions-online.com/preg_match.html

傅高逸
2023-03-14

尝试此模式

$regex = "/^[A-Za-z0-9...]+$/";

您应该将9]之间的3个点替换为您允许的特殊字符。

示例:

// Adding comma (,) only
$regex = "/^[A-Za-z0-9,]+$/";

// Adding comma (,) and period (.)
$regex = "/^[A-Za-z0-9,.]+$/";

// comma and plus sign (+) note that plus/minus signs need to be escaped \+\-
$regex = "/^[A-Za-z0-9,\+\]+$/";

您要求的完整字符串应该是:

// comma, period, plus sign, dash, exclamation mark, colon, semi colon, parentheses, space is (\s)
$regex = "/^[A-Za-z0-9,.\+\-!:;()\s]+$/";

如果允许使用下划线字符 (_),则可以使用 [\w...] 而不是 [A-Za-z0-9...]

你可以在这里测试

周瀚
2023-03-14

您可以使用字符类来列出要允许的字符。如果要匹配大写和小写字符,您可以将A-Za-z缩短为a-z并指定不区分大小写的标志/i

断言字符串 ^ 开头的位置,匹配字符类中的字符一次或多次,并断言字符串 $ 末尾的位置。

a-z0-9,. !:;()-] $

<?php
$regex = "/^[ a-z0-9,.+!:;()-]+$/i";
$string = "some user input in a form passed via POST to form processor";
if (preg_match($regex, $string)) {
    echo "Found a match!";
} else {
    echo "The regex pattern does not match. :(";
}
?>

测验

 类似资料:
  • 我试图构建一个正则表达式来匹配这些字符串: jfldfldf ldjfdlf ldfl ldfldf 8998 dfjldjf 89dfdf DF899 ljdljf[dff]DFDFDF(fdfdf)898 要求: 字符串应仅以任何小写或大写字符(A-Z)开头 它可能包含空格或括号() 不允许任何其他特殊字符 我尝试了,但它仍然接受其他特殊字符。

  • 2.密码必须至少包含一个大写字母、一个小写字母、一个数字和一个标点符号。(例如a-z,a-z,0-9,!@#$%^&*()_+~-=`{}[]:“;'<>?,./) 我尝试使用:{}:“;'<>?,./-][])$` 但是,当我在中测试时,标点符号部分的解释并不清楚 标点符号的解释好像坏了,可以解释一下原因并帮我完成这个。

  • 问题内容: 我有日期主要集中在形式和。我想模式匹配。 为此目的编写正则表达式很简单吗?我是regex的新手,所以不胜感激任何资源达标可以使我快速入门吗? 问题答案: 如果您试图在字符串中查找这些日期符号,那么正则表达式确实是一个不错的选择。您可以使用此正则表达式: 在此处查看实际操作:http : //rubular.com/r/qZOTsUikbo。注意:这也匹配“ 日期 ” 。如果这对您来说是

  • 其中,我需要包括连字符和空格。 这意味着还必须可以输入值“”。

  • 问题内容: 采取以下Java字符串: 我想将该字符串转换为: 有一些Java实用程序会将其转换为“ HW”,但我想保留空白和标点符号。我可以通过拆分字符串并分别处理每个单词来做到这一点,但这太慢了。我正在尝试找到一个正则表达式,在这里我可以抓住一个单词的所有字母,但第一个字母不是?即,抓取“ ello”和“ orld”,然后将其替换为“”。我知道“ \ w”会抓住所有字母,但是有没有办法排除每个单

  • 我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?