我正则表达式有问题。我想使用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. :(";
}
?>
我看了视频,谷歌了几个小时,仍然不能得到这个权利。
感谢您的任何帮助!
/^[a-zA-Z0-9,.!?\-\+:;() ]*$/
参见示例:正则表达式只允许字母、数字、空格、逗号、句号?
谷歌搜索: preg_match数字字母标点符号
编辑:你可以在这里测试https://www.functions-online.com/preg_match.html
尝试此模式
$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...]
你可以在这里测试
您可以使用字符类来列出要允许的字符。如果要匹配大写和小写字符,您可以将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'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?