开发者

Regular Expressions find and replace

开发者 https://www.devze.com 2023-02-18 13:30 出处:网络
I am having problems with RegEx in PHP and can\'t seem to find the answer. I have a string, which is 3 letters, all caps ie COS.

I am having problems with RegEx in PHP and can't seem to find the answer.

I have a string, which is 3 letters, all caps ie COS.

the letters will change but always be 3 chars long and in caps, it will also be in the center of another string, surrounded by commas.

I need a regEx to find 3 caps letter inside a strin开发者_开发问答g and cahnge them from COS to 'COS' (im doing this to amend a sql insert string)

I can't seem to find the regEx unless i use spercifit letter but the letters will change.

I need something along the lines of [A-z]{3} then replace with '[A-Z]' (I know this isnt anywere near correct, just shorthand)

Anyone any suggestions?

Cheers

EDIT:

Just wanted to add incase anyone comes accross this question at a later date:

the sql insert string (provided from an external source and ftp's to my server daily) contained the 3 capital string twice, once with commas and once with out so I had to also remove the double commas added from the first regEx

$sqlString = preg_replace('/([A-Z]{3})/', "'$1'", $isqlString);
$sqlString = preg_replace('/\'\'([A-Z]{3})\'\'/', "'$1'", $sqlStringt);

Thanks everyone


You were actually very close. You could use:

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


For MySQL statements I would advise to use the function mysql_real_escape_string() though.


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

http://php.net/manual/en/function.preg-replace.php


Assuming it's like you said, "three capital letters surrounded by commas, e.g.

Foo bar,COS,Foo Bar

You can use look-ahead and look-behinds and find the letters:

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

Then a simple replace to surround with single quotes will be adequate:

'$1'

All together, Here's it working.


preg_replace('/(^|\b)([A-Z]{3})(\b|$)/', "'${2}'", $string);
0

精彩评论

暂无评论...
验证码 换一张
取 消