PHP中的正则表达式
说到使用正则表达式,我还是个新手。我正在尝试设置一个正则表达式,如果“0”本身不匹配,它将永远不会匹配。我有5个测试表达式。最后4个应该匹配,第一个不应该匹配。然而,我似乎只能让中段比赛。我如何设置它以使最后一个也匹配PHP中的正则表达式,php,regex,pcre,Php,Regex,Pcre,说到使用正则表达式,我还是个新手。我正在尝试设置一个正则表达式,如果“0”本身不匹配,它将永远不会匹配。我有5个测试表达式。最后4个应该匹配,第一个不应该匹配。然而,我似乎只能让中段比赛。我如何设置它以使最后一个也匹配 <?php $data1='0'; $data2='New Triggered By Test 01'; $data3='Hello'; $data4='01 Test'; $data5='00'; $pattern='/[^0]{1}/'; echo preg_mat
<?php
$data1='0';
$data2='New Triggered By Test 01';
$data3='Hello';
$data4='01 Test';
$data5='00';
$pattern='/[^0]{1}/';
echo preg_match($pattern,$data1);
echo preg_match($pattern,$data2);
echo preg_match($pattern,$data3);
echo preg_match($pattern,$data4);
echo preg_match($pattern,$data5)
?>
让我们保持简单:
$data !== '0';
让我们保持简单:
$data !== '0';
你想要匹配的是
- 不是
0的单个字符0
- 或多个字符
"#^([^0]|.{2,})$#"
评论:
"/^ # begining of the input string
(
[^0] # one char, everything but zero
|.{2,} # or any sequence of more than one char
)$/"
测试脚本:
$inputs = array(
'0',
'New Triggered By Test 01',
'Hello',
'01 Test',
'00',
);
foreach($inputs as $input) {
echo "$input: ";
if (preg_match("#^([^0]|.{2,})$#", $input)) {
echo "OK\n";
} else {
echo "NOT OK\n";
}
}
你想要匹配的是
- 不是
0的单个字符0
- 或多个字符
"#^([^0]|.{2,})$#"
评论:
"/^ # begining of the input string
(
[^0] # one char, everything but zero
|.{2,} # or any sequence of more than one char
)$/"
测试脚本:
$inputs = array(
'0',
'New Triggered By Test 01',
'Hello',
'01 Test',
'00',
);
foreach($inputs as $input) {
echo "$input: ";
if (preg_match("#^([^0]|.{2,})$#", $input)) {
echo "OK\n";
} else {
echo "NOT OK\n";
}
}
要么是一个零,后跟至少一个其他字符,要么是一个不以零开头的字符串
IDEONE概念的现场验证:
要么是一个零,后跟至少一个其他字符,要么是一个不以零开头的字符串
IDEONE上的实时概念验证:您的表达式表示您应该有一个或多个不是“0”的字符。“00”没有任何不是“0”的字符。请显示另一个不应匹配的字符串,与当前情况一样,您甚至不需要正则表达式。您的表达式表示您应该有1个或多个非“0”字符。“00”没有任何不是“0”的字符。请显示另一个不应匹配的字符串,因为在当前情况下,您甚至不需要正则表达式。解决了本例中的基本问题,但作者确实特别要求使用正则表达式。!=,否则也会触发
”
。不幸的是,我需要它是一个正则表达式,否则我会这样做,解决了本例中的根本问题,但作者确实特别要求使用正则表达式。!==,不幸的是,我需要它成为一个正则表达式,否则我会这样做。我不知道你是如何从OP的问题中扣除这组规则的。这与他的案例2和案例3不匹配。@Tuga,是的,它有效@Juhana,他想匹配所有条件,除了一个只有0
的字符串。。。只要检查字符串是否与'0'
不匹配就足够了。RegexBuddy给出了错误的否定。。。在php中运行它之后,我意识到它是有效的,很抱歉,+1:)我不知道你是如何从OP的问题中扣除这组规则的。这与他的案例2和案例3不匹配。@Tuga,是的,它有效@Juhana,他想匹配所有条件,除了一个只有0
的字符串。。。只要检查字符串是否与'0'
不匹配就足够了。RegexBuddy给出了错误的否定。。。在php中运行它之后,我意识到它正在工作,对此表示抱歉,+1:)