我编写了一个应该提取以下模式的正则表达式;“çççç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排除的任何无效字符。谁能告诉我为什么会这样,我该如何解决这个问题? 最佳答案 问题出在别处。你
我有这个字段由curl_exec返回:150000是一个随机数,可能会变,其他都是常量我试过:preg_match('//',$result,$number)还有:preg_match('//ims',$result,$number)但是没有运气......完整代码如下:$result=curl_exec($cid);curl_close($cid);$number=array();if(preg_match('REGEX',$result,$number)){echo$number[1];}编辑1:抱歉,我在echo$number[1]中忘记了[1];另外1500000是一个随机数,
我的正则表达式有一个小问题,我用它从强字符串中提取电话号码';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
我无论如何都让我的东西与以下行一起工作,但我真的无法理解。if(preg_match_all('/[^=]*=([^;@]*)/',shell_exec("/home/technoworld/Desktop/test/b'$test'"),$matches)){$x=(int)$matches[1][0];//optionallycasttoint$y=(int)$matches[1][1];$pcount=round((100*$x)/($x+$y),2);$ncount=round((100*$y)/($x+$y),2);}b是可执行文件,它给出的结果类似于x=10和y=20谁能给
Mod重写新手在这里。我想在URL中传递两个URL参数,但格式更友好。如果用户通过“example.com/blah123/sys”,在这种情况下,我应该能够提取MySQL记录“blah123”和模式类型“sys”。这是示例:网址:example.com/blah123/sys在.htaccess中,我有:RewriteEngineOnRewriteRule^([^/.]+)/?$index.php?id=$1如果传递的URL是“example.com/blah123”,但不是“example.com/blah123/sys”,则上述方法有效。我尝试了以下方法,但它不起作用:Rewri
在我的方法中,我从源代码中提取了以下字符串PlangeMühle1,40221Düsseldorf我现在要做的是过滤掉所有内容,直到逗号,然后是数字,然后是再说一遍我所做的是执行这个不起作用的正则表达式。^(.*?),\s*([0-9]{5})\s*(\S*)但这应该正常工作,对吧?所以我又开始删除所有内容,然后一部分一部分地删除。当我只有部分时,它需要一切,直到它工作的逗号,但当然只适用于逗号之前的数据。但是,在第一个空格之后,问题出现了。当我之后做任何事情时,比如[^0-9]一个标志出现了。就在这里数组(2){[0]=>string(19)"PlangeMühle1,�"[1]=>
我在玩正则表达式,我尝试了\Q..\E转义序列。第一次尝试:$regex='/\Qhttp://\E/';var_dump(preg_match($regex,'http://'));它告诉我'\'是未知修饰符,完全可以理解。第二次尝试:$regex='/\Qhttp:\/\/\E/';var_dump(preg_match($regex,'http://'));var_dump(preg_match($regex,'http:\/\/'));它运行,不匹配第一个字符串,但匹配第二个。我知道我可以使用其他分隔符或不使用\Q..\E来解决它,但我很好奇它是如何工作的。我首先通过它通过分隔