2

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

a2c

bdR

dDv

“ddv

啊啊啊

“啊啊啊

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

我试过了

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

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

4

3 回答 3

2

您缺少字符串 anchor 的开头^,这意味着您的表达式将匹配一个字符串,如果它出现在其中的任何位置。显然,序列“非引号后跟任何内容,包括字符串结尾”出现在所有示例输入中。

这个表达式将匹配你想要的:

^[^"]

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

于 2013-02-21T11:19:13.040 回答
0

尝试一下:

^[^"](.*)/gm

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

于 2013-02-21T11:30:12.713 回答
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);
于 2013-02-21T11:31:51.867 回答