我有字符串列表(在PHP中):
A2C
BDR
DDV
“DDV
AAA
“AAA
什么是RegEx表达式只匹配不以引号开头的字符串?在这个例子中有四个这样的字符串。所以,我只需匹配四个字符串(计算它们)。对于这个列表我使用循环,但我现在只需要RegEx。谢谢!
我试过
[^"]([a-zA-Z0-9]*)*
但它仍匹配所有字符串,即使是那些以引号开头的字符串。
答案 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);