我需要为要在drupalspammodule中使用的阿拉伯语/波斯语字母表中的某些垃圾邮件词定义一个PCRE正则表达式.问题是通常的PCRE正则表达式显然无法找到阿拉伯字母中的模式。例如,while/badword/标记“badword”的实例,但是/کلمهبد/i无法标记“کلمهبد”。 最佳答案 如果我使用u(Unicode)PCRE修饰符,我对此没有问题:$string='کلمهبد';if(preg_match('~\p{Arabic}~u',$string)>0){var_dump('containsArabicch
我希望正则表达式清理我的数据,它应该满足以下条件a)a-zandA-Zallowedb)0-9allowedc)SpecialSymbolslikeComma(,)dot(.)questionMark(?allowed)d)SingleSpaceisallowed我试过并想到了这个preg_replace('%[^a-zA-Z0-9,.?\s]%','',$string);我对RegExp不太熟悉,虽然上面的代码可以,但我想知道a)ifiamusingthecorrectRegExpsyntax?b)ifidon'tusemodulus(%)atthestartandendofthes
我正在为替换空行标签。正则表达式替换所有允许空格(\s)的黑线,一个标签。例如这个字符串:$string="with.\n\n\n\nTherefore";但返回2标签。所以,我做了这个测试:(它不是为了替换,只是为了测试)$string="with.\n\n\n\nTherefore";$string=preg_replace('/(^)(\s*)($)/m','[$1]|$2|($3)',$string);echo$string;并检查返回的内容:with.[]||()[]||()Therefore想象:with.\n^\n\n$^\n$\nTherefore正则表达式添加一个\n
我必须读取一个相当大的文件,其中包含以不同方式格式化的数字。我试过使用内置的floatval()功能。此函数适用于某些数字,例如22000.76,但不适用于22000,76。阅读php.net上的评论对我帮助很大,我发现了这个parseFloat函数:1)$pString=str_replace(",","",$pString);if(substr_count($pString,".")>1)$pString=str_replace(".","",$pString);$pregResult=array();$commaset=strpos($pString,',');if($comma
如何使用phppreg_replace和regularexpression删除所有包含的超链接.这是我写的,但它不起作用$newlink=preg_replace('/^(.*)/is','',$link);我想将这些链接替换为aaanchormarkgotopart1gotopart2gotopart3为空值。 最佳答案 首先让我说,使用正则表达式来解析/修改HTML文档可能是错误的方法。我鼓励您查看DOMDocument如果您这样做是为了进行任何其他修改。话虽如此,使您的表达式成为非贪婪表达式(.*?)可能会奏效。$newlin
我的$subject几乎没有可应用的替换,但我不想让旧替换#(1..i-1)的输出与当前替换#i匹配。$subject1=preg_replace($pat0,$rep0,$subject0);$subject2=preg_replace($pat1,$rep1,$subject1);$subject3=preg_replace($pat2,$rep2,$subject2);我尝试使用一个带有数组的preg_replace来进行模式和替换,希望它能立即完成;但事实证明它只不过是连续调用简单的preg_replace(当然有一些优化)在我阅读了有关preg_replace_callbac
我想用preg_match_all解析电子邮件地址列表(如TOheader中的列表)以获取用户名(如果存在)和电子邮件。类似于Pear的mailparse_rfc822_parse_addresses或Mail_RFC822::parseAddressList()的东西,但在纯PHP中。输入:"DOE,John\(ACME\)","DOE,Jane"输出:array(array('name'=>'DOE,John(ACME)','email'=>'john.doe@somewhere.com'),array('name'=>'DOE,Jane','email'=>'jane.doe@s
我正在寻找一种从html字符串中删除所有JavaScript标记的方法。以下正则表达式工作正常,但我想添加一个异常(exception):$html=preg_replace('#]*>.*?#is','',$html);我怎样才能添加一个规则来忽略text/html类型的脚本?...有什么建议吗?提前致谢。 最佳答案 您可能不是要清理不受信任的HTML,只是为了让这个问题的读者不要误会:这不会删除之外的javascript元素:.它不会删除几乎没有混淆的脚本:alert(42).它将无效内容转换为脚本:t>alert(42).我并
我有一个处理用户输入的脚本,在它继续与数据库交互之前,它会使用正则表达式验证输入。我唯一的问题是,正则表达式是否足以消除注入(inject)攻击,或者我是否仍需要应用mysql_real_escape_string()? 最佳答案 这真的取决于表达的“好”程度;比如,“你覆盖了所有的基地吗?”为了安全起见,通过mysql_real_escape_string放它也没什么坏处。如果您在脚本中多次使用它,则不会影响性能。 关于php-正则表达式足以阻止注入(inject)攻击吗?,我们在St
奇怪的事情发生了,当我正在工作的网站被转移到另一个装有较新版本PHP的服务器上时。在其他3个不同服务器上正常工作的正则表达式拒绝工作,一直返回0。这是原始的正则表达式:/\A(?P[[:alpha:]]{4})[[:space:]](?P[\p{L}\p{N}]{3,})[[:space:]](?P[[:digit:]]{2,4})[[:space:]](?P[[:digit:]]{1,2})\z/u密码必须是unicode,在它只是[[:alnum:]]之前,但客户端存在一些问题。这些是我尝试过但无济于事的:/\A(?[[:alpha:]]{4})(?[[:alnum:]]{3,})