if (preg_match('(\p{Nd}{4}/\p{Nd}{2}/\p{Nd}{2}/\p{L}+)', '2010/02/14/this-is-something'))
{
// do stuff
}
以上代码起作用。但是这个不是。
if (preg_match('/\p{Nd}{4}/\p{Nd}{2}/\p{Nd}{2}/\p{L}+/u', '2010/02/14/this-is-something'))
{
// do stuff
}
也许有人可以解释一下为什么下面的那个不起作用。这是正在产生的错误:
有人知道这个正则表达式出了什么问题吗?它在RegexPal和RegExr这样的网站上运行得很好,但在PHP中它会给我这样的警告,但没有结果:
Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash
下面是我的代码:
preg_match('name="dsh" id="dsh" value="(.*?)"', 'name="dsh" id="dsh" value=
我有这样的代码:
$string1 = "My name is 'Kate' and im fine";
$pattern = "My name is '(.*)' and im fine";
preg_match($pattern , $string1, $matches);
echo $matches[1];
当我运行时,它会返回以下错误:
警告: preg_match() function.preg-match:分隔符不能是字母数字或反斜杠
我正在尝试设置一个类似于的服务,但使用的语言是PHP,使用的是preg系列函数。它将接受一个输入正则表达式、一个测试字符串并运行preg_match()。
我如何找出是否发生了编译错误(例如:无效的正则表达式),如果是这样,错误是什么?通常,它会抛出警告,如下所示:
Warning: preg_match() [function.preg-match]: Compilation failed: missing ) at offset x in ****** on line y
pcre_last_error()在这里完全没有用,因为如果正则表达式无法编译,它将返回0 (PREG_NO_ERRO
这是我尝试使用的正则表达式:
/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim
我在上找到了它,当我在那里尝试它的时候,它工作得很好。但是一旦我把它放到我的代码中,我就会得到这样的消息:
Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in C:\xampp\htdocs\swebook\includes\classes.php on line 22
谁能解释一下哪里出了问题,为什么它在那个网站上工作,而不是在我的代码中?
我有以下代码片段,其中我希望匹配用户提供的输入,以匹配正则表达式中指定的任何其他输入。一切正常,但\n部分,我想允许多行。尤其是这并不起作用。
if(preg_match("/[^A-Za-z0-9., \/-\n]/", $addr))
{
echo "Invalid user input ";
exit;
}
我已经明白了
Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class
我在我的程序中使用preg_match函数。代码如下所示
if (!$this->config_allow_src_above_docroot && !preg_match('^'.preg_quote(str_replace(DIRECTORY_SEPARATOR, '/', realpath($this->config_document_root))), $AbsoluteFilename))
但是运行应用程序,它会显示如下警告
Warning: preg_match() [function.preg-match]: No end
我正在尝试从服务器端验证表单数据。我感兴趣的是,用户只需用波斯文字符填写表单。
我使用的是以下代码:
$name=trim($_POST['name']);
$name= mysql_real_escape_string($name);
if (preg_match('/^[\u0600-\u06FF]+$/',str_replace("\\\\","",$name))){$err.= "Please use Persian characters!";}
但是它不起作用!
以下是一个警告:
Warning: pre
为了将我的代码更新到PHP5.3,我更改了ereg to preg_match。现在我在我的页面上看到了这个警告。如何解决这个问题?
警告:
Warning: preg_match() [function.preg-match]: Unknown modifier '-' in C:\xampp\htdocs\share\configs\functions.php on line 2645
旧代码:
if (!ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $dateOfBirth, $regs))
新代码(PHP 5
我的错误日志中显示了以下错误:
PHP Warning: preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Delimiter must not be alphanumeric or backslash in /home/sites/mydomain.com/public_html/public/themes/js/imagegallery.php on line 24, referer: http://www.mydomain.com/collections.h
我试图在一个目录中列出在名称开头有一个特定字符串(在我的例子中是一个日期标记)的所有PHP文件,并在后面列出一个特定的字符串".php“。我的日期是作为变量($SearchDate)传入的。我已经成功地设置了PHP脚本,以便从我的目录中读取完整的文件列表,并且只是尝试使用preg_match来筛选列表。不幸的是,我在RegEx是一个彻头彻尾的失败者,即使我曾多次尝试过。
这里我看到的是产生错误而没有结果:
$SearchDate = '2013-02'; //example for february of 2013
if(preg_match('#^('
我有一个表单,用户输入汽车登记,所以我只想允许数字和字母?
if(preg_match("/(A-Za-z0-9]+/", $to)){
$errors[] = "Only use numbers and letters please";}
得到错误...
Warning: preg_match() [function.preg-match]: Compilation failed: missing ) at offset 12 in /homepages/28/d420353834/htdocs/regupdate.php on line 84
所以我猜我搞
我需要使用preg_match检查一行是否以/>或/>结尾
我已经创建了一个函数,其中包含以下行
if (!preg_match('\/>$', $str)) {
但是它不能工作,因为它伴随着这个错误
Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash
我怎么才能让它工作呢?