RegEx仅匹配不以引号开头的字符串

时间:2013-02-21 11:17:24

标签: php regex string

我有字符串列表(在PHP中):

A2C

BDR

DDV

“DDV

AAA

“AAA

什么是RegEx表达式只匹配不以引号开头的字符串?在这个例子中有四个这样的字符串。所以,我只需匹配四个字符串(计算它们)。对于这个列表我使用循环,但我现在只需要RegEx。谢谢!

我试过

[^"]([a-zA-Z0-9]*)*

但它仍匹配所有字符串,即使是那些以引号开头的字符串。

3 个答案:

答案 0 :(得分:1)

您缺少字符串锚点^的开头,这意味着如果表达式在其中的任何位置,则表达式将与字符串匹配。显然,所有样本输入中都会出现“非引号后跟任何内容,包括字符串结尾”的序列。

此表达式将符合您的要求:

^[^"]

它只匹配任何第一个字符不是双引号的输入。没有必要打扰其他角色。

答案 1 :(得分:0)

试一试:

^[^"](.*)/gm

(如果变量中有多个字符串。)

答案 2 :(得分:0)

$strigs_arr       = array();
foreach($strings as $str){
   //$str         = '"aaa';
   preg_match('/^(?P<string>[^"].*)/',$str,$match);

   $strigs_arr[]  = $match['string'];
}
echo "<pre>";
print_r($strigs_arr);