下面是我的字符串,我只想从整数和浮点值中删除 $,不想从字符串中删除 $,例如"Mastsdsdosmsy $4.50 AsI" 请任何人帮助我。
$string = ' "2016-02-19","Videomssdsdsize",
"Mastsdsdosmsy $4.50 AsI","","Masdsdtomy
$2.00 In-App","27753492","171352","155928",
"109608","0.62","91.00","70.29","$2.25",
"$246.62","$219.22","$27.40","11.11","32",
"0.03","78937","72.02"';
我已经在使用以下正则表达式来删除 $,但它也从字符串中删除,但我不想像上面提到的字符串中删除 $谢谢
$result=str_replace('$','' , $string);
尝试:
$result=preg_replace('/"'$('d)/','"$1' , $string);
我还没有测试过这个解决方案。方法是使用正则表达式来匹配每个$
字符,后跟一个数字,并将其替换为空字符串。
编辑:我已经编辑了正则表达式以匹配和捕获$
符号后面的数字,并将整个匹配项替换为匹配的数字
编辑 2:我已经编辑了正则表达式,仅当$
符号在"
之后时才进行替换
您需要先将搜索字符串括在分隔符中,以便
preg_replace('/ /',...
或
preg_replace('! !',...
所以
$result=preg_replace('/"'$/','"', $string);
这是在做什么:
搜索语音标记"
然后是一个美元符号 ''$(转义或它将搜索行尾)
并将其替换为"
您可以使用以下正则表达式替换:
'~"'$('d+(?:'.'d+)?")~'
并替换为"$1
.查看正则表达式演示
此正则表达式将匹配:
-
"'$
- 后跟文字$
符号的"
-
('d+(?:'.'d+)?")
- 第 1 组匹配:-
'd+
- 一个或多个数字 -
(?:'.'d+)?
- 与文本点后跟一个或多个数字匹配的可选组(出现一次或零次) -
"
- 双引号
-