我对使用正则表达式非常陌生,并且我只尝试仅允许A-Z, a-z, 0-9, -, _
我正在使用以下表达式:
preg_match('/^[a-zA-Z0-9-_]+$/i', $_POST['sign_up_username'])
我的问题是,这是否是正确的方法。我不确定这是否是发布此内容的正确位置。任何帮助都会很棒。感谢。
答案 0 :(得分:2)
正则表达式不正确。在最后或开始移动-
或在字符类中将其转义,因为-
在字符类中具有特殊含义。它表示字符类中的range
。你可以使用
^[-a-zA-Z0-9_]+$
另外
\w = [a-zA-Z0-9_]
所以,你可以使用
^[\w-]+$
此外,不需要i
修饰符,最后是的,它只允许 AZ大写和小写,数字,破折号和下划线 < / p>
这在PHP中就足够了
preg_match('/^[\w-]+$/', $_POST['sign_up_username'])
答案 1 :(得分:0)
if(preg_match('/ ^ [a-zA-Z0-9 -_] + $ / i',$ str)== 1)
{
sinfo = []
for thisMatch in re.findall(r"<td>(.+?)</td>.+?<td>(.+?)</td>.+?<td>(.+?)</td>.+?<td>(.+?)</td>", match3, re.DOTALL):
print(thisMatch[0], thisMatch[1], thisMatch[2])
sinfo.append(scrapyitem(name=thisMatch[0], hp=thisMatch[1], email=thisMatch[2]))
try:
for scrapyInfo in sinfo:
scrapyInfo.save()
...
回音“是”;
}
否则
{
回声“不”;}