下面是我的字符串,我想从整数和浮点值中删除$,并且不想从字符串中删除$,如#34; 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);
答案 0 :(得分:1)
尝试:
$result=preg_replace('/"\$(\d)/','"$1' , $string);
我还没有测试过这个解决方案。方法是使用正则表达式匹配每个$
字符后跟一个数字,并用空字符串替换它。
修改强>:
我已编辑正则表达式以匹配并捕获$
符号后面的数字,并仅使用匹配的数字替换整个匹配
编辑2 :
我已经编辑了正则表达式,只有当$
符号位于"
答案 1 :(得分:0)
您需要先将搜索字符串括在分隔符中,以便
preg_replace('/ /',...
或
preg_replace('! !',...
所以
$result=preg_replace('/"\$/','"', $string);
这是做什么的:
搜索演讲标记"
然后是一个美元符号\ $(转义或它将搜索行尾)
用"
代替答案 2 :(得分:0)
您可以使用以下正则表达式替换:
'~"\$(\d+(?:\.\d+)?")~'
并替换为"$1
。见regex demo
此正则表达式将匹配:
"\$
- "
后跟文字$
符号(\d+(?:\.\d+)?")
- 第1组匹配:
\d+
- 一个或多个数字(?:\.\d+)?
- 与文字点后跟一个或多个数字匹配的可选组(一次或零次出现)"
- 双引号