以下用于验证Twitter用户名的正则表达式函数不起作用,因为Twitter名称最少为1个字符,最多为20个字符。但是,当我对此进行测试时,它允许用户名超过20个字符。我哪里出错了?publicfunctionval_username($subject){return(bool)preg_match('/[a-zA-Z0-9_]{1,20}/',$subject);} 最佳答案 您忘记了$和^/^[a-zA-Z0-9_]{1,20}$/应该有效publicfunctionval_username($subject){return(b
我编写了一个应该提取以下模式的正则表达式;“ççççoookkkgggüüüüzzzeeelll”(意思是vvveeerrryyygggoooddd带有土耳其语字符“ç”和“ü”)"ccccoookkkggguuuzzzeeelll"(意思相同,但有英文字符“c”和“u”)这是我正在尝试的正则表达式;"\b[çc]+o+k+\sg+[üu]+z+e+l+\b":这适用于英语,但不适用于土耳其语字符“çok”:找到“çok”,但当我尝试“ç+o+k+”对“çççoookkk”不起作用时,它找到“çoookkk”“güzel”:找到“güzel”,但当我尝试“g+ü+z+e+l+”时,它对
我使用以下正则表达式来验证用户名(注册表单中的输入类型文本),以确保用户名仅包含字母数字字符、点、破折号或下划线。if(!preg_match('/^[a-zA-Z0-9\.\_-]+$/',$my_name)){echo'no_valid';}当我在文本字段中键入例如%或#或@时,我会正确返回错误消息,指出它不是有效的用户名,并且有效字符(.-_)也被接受,所以它似乎工作正常,直到当我输入&或+时,我就可以输入之前使用preg_match排除的任何无效字符。谁能告诉我为什么会这样,我该如何解决这个问题? 最佳答案 问题出在别处。你
我的正则表达式有一个小问题,我用它从强字符串中提取电话号码';print_r($matches[0]);?>输出Array([0]=>718-838-3586[1]=>1052202932[2]=>800-308-4653[3]=>866-641-6949[4]=>800-871-0999)这个工作正常,但它返回1052202932作为我不需要的结果之一。实际上我不知道我的模式中缺失的部分在哪里。 最佳答案 每个[-]之后的?使-成为可选的。如果您希望它成为必需的,您只需删除?即可使其成为必需的。另外,[-]等同于-所以我去掉了不必
这个问题在这里已经有了答案:RegularExpressionforextractingtextfromanRTFstring(11个答案)关闭9年前。我使用的数据库中的一列包含RTF字符串,我想使用PHP去除这些字符串,只留下中间的句子。如果我没记错的话,它是一个MSSQL数据库2005。从数据库中提取的字符串类型的示例(需要更多的告诉我,其余的都是类似的):{\rtf1\ansi\ansicpg1252\deff0\deflang2057{\fonttbl{\f0\fnil\fcharset0Tahoma;}}\viewkind4\uc1\pard\lang1033\f0\fs17
我需要根据这些规则验证字符串:值不是s值的长度至少为1个字符值仅包含a-z0-9-_/值不以/开头值不以/结尾值不包含/s/值不包含//值不以s/开头值不以/s结尾(更简单地说,我正在寻找类似于UNIX风格的路径,带有斜杠分隔符,其中文件/文件夹名称只允许a-z0-9-_,没有文件/文件夹名为s,它没有开头或结尾的斜杠。)我需要在客户端通过JavaScript执行此操作,在服务器端使用PHP执行此操作。我知道最优雅的解决方案是通过复杂的正则表达式。但是尝试写一个值得挑战吗?还是我应该只使用条件?现在,我的解决方案是:http://jsfiddle.net/cKfnW/JavaScrip
在我的方法中,我从源代码中提取了以下字符串PlangeMühle1,40221Düsseldorf我现在要做的是过滤掉所有内容,直到逗号,然后是数字,然后是再说一遍我所做的是执行这个不起作用的正则表达式。^(.*?),\s*([0-9]{5})\s*(\S*)但这应该正常工作,对吧?所以我又开始删除所有内容,然后一部分一部分地删除。当我只有部分时,它需要一切,直到它工作的逗号,但当然只适用于逗号之前的数据。但是,在第一个空格之后,问题出现了。当我之后做任何事情时,比如[^0-9]一个标志出现了。就在这里数组(2){[0]=>string(19)"PlangeMühle1,�"[1]=>
我试图找到一个与定义了超文本的HTML超链接标记相匹配的正则表达式。例如:Thedefinedtext我需要匹配任何超链接,它的超文本是“定义的文本”。我刚刚在RegularExpressionLibrary上找到了以下表达式但并没有解决问题。.+?)(?=[>\s]).*?>(?.+?)我希望有一个适用于PHP的解决方案。 最佳答案 $regex="/Thedefinedtext/";//correctedasperthecomments$str='ThedefinedtextTheNot-definedtext';preg_ma
我在javascript中有这个用于验证的正则表达式:/^(?:'[A-z](([\._\-][A-z0-9])|[A-z0-9])*[a-z0-9_]*')$/现在我想要使用Codeigniter的表单验证对表单验证使用相同的正则表达式:$this->form_validation->set_rules('username','Nombredeusuario','required|min_length[2]|max_length[15]|regex_match[/^[A-Za-z0-9_.\-]+$/]|is_unique[user.username]');该行中的正则表达式不等同于
我花了4个多小时试图找到我的php代码的正则表达式模式,但运气不佳。我有一个带有html代码的字符串。它有很多url格式,例如:example.comhttp://example.comhttp://www.example.comhttp://example.com/some.phphttp://example.com/some.php?var1=1http://example.com/some.php?var1=1&var2=2etc.我有以下部分工作的php代码:preg_match_all('/\b(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)[