示例数据为:
"3610212505","3610212505","Jack is 6'2" tall"
我希望在 PHP 中使用正则表达式模式转义出现在 2 in 6'2" 之后的双引号。此行是我正在尝试清理的较大 CSV 文件的一部分。
基本上任何不是的双引号:
- 在行的开头
- 在行的末尾
- 逗号前面或后面
(?<!^)(?<!,)"(?!$|,)
试试这个。请参阅演示。
https://regex101.com/r/wZ0iA3/9
$re = "/(?<!^)(?<!,)'"(?!$|,)/im";
$str = "'"3610212505'",'"3610212505'",'"Jack is 6'2'" tall'"";
$subst = "";
$result = preg_replace($re, $subst, $str);
类似
/"(?!(,|$|'w))/
-
(?!(,|$|'w))
确保"
后不跟字符串或'w
,
或$
末尾
正则表达式演示
例
preg_replace("/'"(?!(,|$|''w))/", "", "'"3610212505'",'"3610212505'",'"Jack is 6'2'" tall'"");
=> "3610212505","3610212505","Jack is 6'2 tall"