我有字符串列表(在 PHP 中):
a2c
bdR
dDv
“ddv
啊啊啊
“啊啊啊
什么是正则表达式只匹配不以引号开头的字符串?在这个例子中,有四个这样的字符串。所以,我只需要匹配四个字符串(计算它们)。对于这个列表,我正在使用循环,但我现在只需要 RegEx。谢谢!
我试过了
[^"]([a-zA-Z0-9]*)*
但它仍然匹配所有字符串,即使是那些以引号开头的字符串。
您缺少字符串 anchor 的开头^
,这意味着您的表达式将匹配一个字符串,如果它出现在其中的任何位置。显然,序列“非引号后跟任何内容,包括字符串结尾”出现在所有示例输入中。
这个表达式将匹配你想要的:
^[^"]
它只匹配第一个字符不是双引号的任何输入。没有必要打扰其余的角色。
尝试一下:
^[^"](.*)/gm
(如果变量中有多个字符串。)
$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);