Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式查找和替换_Php_Mysql_Regex - Fatal编程技术网

Php 正则表达式查找和替换

Php 正则表达式查找和替换,php,mysql,regex,Php,Mysql,Regex,我对PHP中的正则表达式有问题,似乎找不到答案 我有一个字符串,是3个字母,都是大写字母 字母将发生变化,但始终为3个字符长且大写,它也将位于另一个字符串的中心,由逗号包围 我需要一个正则表达式在字符串中找到3个大写字母,并将它们从COS转换为“COS” (我这样做是为了修改sql插入字符串) 除非我使用特殊字母,否则我似乎找不到正则表达式,但字母会改变 我需要一些类似的东西 [A-z]{3}然后替换为“[A-z]”(我知道这根本不正确,只是简写) 有什么建议吗 干杯 编辑: 我只是想补充一点,

我对PHP中的正则表达式有问题,似乎找不到答案

我有一个字符串,是3个字母,都是大写字母

字母将发生变化,但始终为3个字符长且大写,它也将位于另一个字符串的中心,由逗号包围

我需要一个正则表达式在字符串中找到3个大写字母,并将它们从COS转换为“COS” (我这样做是为了修改sql插入字符串)

除非我使用特殊字母,否则我似乎找不到正则表达式,但字母会改变

我需要一些类似的东西 [A-z]{3}然后替换为“[A-z]”(我知道这根本不正确,只是简写)

有什么建议吗

干杯

编辑:

我只是想补充一点,以防以后有人碰到这个问题:

sql插入字符串(每天从外部源和ftp提供给我的服务器) 包含3个大写字符串两次,一次带逗号,一次带out 因此,我还必须删除第一个正则表达式中添加的双逗号

$sqlString=preg_replace('/([A-Z]{3})/',“$1'”,$isqlString);
$sqlString=preg\u replace('/\'\'\'([A-Z]{3})\'\'/',“'$1'”,$sqlStringt);


谢谢大家

你们真的很亲密。您可以使用:

echo preg_replace('/([A-Z]{3})/', "'$1'", 'COS'); //will output 'COS'


对于MySQL语句,我建议您使用函数
MySQL\u real\u escape\u string()

您实际上非常接近。您可以使用:

echo preg_replace('/([A-Z]{3})/', "'$1'", 'COS'); //will output 'COS'
$string = preg_replace('/([A-Z]{3})/', "'$1'", $string);

对于MySQL语句,我建议使用函数
MySQL\u real\u escape\u string()

$string = preg_replace('/([A-Z]{3})/', "'$1'", $string);


假设它像你说的那样,“三个大写字母被逗号包围,例如

富吧,富吧,富吧

您可以使用“向前看”和“向后看”查找字母:

(?<=,)([A-Z]{3})(?=,)

总的来说,.

假设它像你说的那样,“三个大写字母被逗号包围,例如

富吧,富吧,富吧

您可以使用“向前看”和“向后看”查找字母:

(?<=,)([A-Z]{3})(?=,)

总之,.

您应该首先修复生成SQL字符串的函数。是的,您已经完美地解决了它,谢谢。我选择了你的答案作为正确答案。谢谢,您应该首先修复生成SQL字符串的函数。是的,您已经完美地解决了它,谢谢。我选择了你的答案作为正确答案。Cheeset也取决于字符串中的其他内容-如果您知道这3个大写字符在逗号内(如在无空格',COS'),则可以进一步限制替换,如下所示:preg_replace('/,([A-Z]{3}),/',“,”,“$1',”;这也取决于字符串中的其他内容-如果您知道这3个大写字符在逗号内(如在无空格',COS'),则可以进一步限制替换,如下所示:preg_replace('/,([A-Z]{3}),/',“,'$1',”;您确实需要指定单词边界,否则“ABC、COSTARICA、XYZ”将有三个以上的替换项。查看以了解更多详细信息。您确实需要指定单词边界,否则“ABC、COSTARICA、XYZ”将有三个以上的替换项。查看以了解更多详细信息。