我在PHP中遇到RegEx问题,但似乎无法找到答案。
我有一个字符串,即3个字母,全部大写,即COS。
字母会改变,但总是3个字符长,在大写字母中,它也会在另一个字符串的中心,用逗号包围。
我需要一个regEx才能在字符串中找到3个大写字母,并将它们从COS变为'COS' (我这样做是为了修改sql插入字符串)
我似乎无法找到regEx,除非我使用了spercifit字母,但字母会改变。
我需要一些东西 [A-z] {3}然后替换为'[A-Z]'(我知道这不是正确的,只是简写)
有人有什么建议吗?
干杯
编辑:
只是想添加任何人以后会遇到这个问题:
sql insert string(从外部源提供,ftp每天提供给我的服务器)
包含3个大写字符串两次,一次用逗号,一次用out
所以我不得不删除第一个regEx中添加的双逗号
$sqlString = preg_replace('/([A-Z]{3})/', "'$1'", $isqlString);
$sqlString = preg_replace('/\'\'([A-Z]{3})\'\'/', "'$1'", $sqlStringt);
谢谢大家
答案 0 :(得分:1)
你其实很亲密。你可以使用:
echo preg_replace('/([A-Z]{3})/', "'$1'", 'COS'); //will output 'COS'
对于MySQL语句,我建议使用函数mysql_real_escape_string()
。
答案 1 :(得分:0)
$string = preg_replace('/([A-Z]{3})/', "'$1'", $string);
答案 2 :(得分:0)
假设它像你说的那样,“用逗号包围的三个大写字母,例如
Foo bar,COS,Foo Bar
您可以使用前瞻和后视并找到字母:
(?<=,)([A-Z]{3})(?=,)
然后用单引号简单替换为环绕就足够了:
'$1'
所有人一起Here's it working。
答案 3 :(得分:0)
preg_replace('/(^|\b)([A-Z]{3})(\b|$)/', "'${2}'", $string);