PHP中的正则表达式

PHP中的正则表达式,php,regex,Php,Regex,我想在PHP中使用正则表达式,并将其转换为abc xyz asdf@Re1/day.poi qwerty 也就是说,我想用Re.1/daysay s2替换子字符串Rs1.5/daysay s1 这里s1和s2可以是格式为Rs | Re[.]/[days]的任何字符串 表达式应该是怎样的?这是您的答案 str = "abc xyz asdf @ Rs1.5/day.poi qwerty." 从数字或数字为小数的字符串中删除小数。如何: <? $str = "abc xyz asdf @

我想在PHP中使用正则表达式,并将其转换为abc xyz asdf@Re1/day.poi qwerty

也就是说,我想用Re.1/daysay s2替换子字符串Rs1.5/daysay s1

这里s1和s2可以是格式为Rs | Re[.]/[days]的任何字符串

表达式应该是怎样的?

这是您的答案

str = "abc xyz asdf @ Rs1.5/day.poi qwerty."
从数字或数字为小数的字符串中删除小数。

如何:

<?
 $str = "abc xyz asdf @ Rs1.5/day.poi qwerty.";
 print_r($str);
 echo "<br />";
 $newStr = preg_replace("/(\.[0-9]+)/", "", $str);
 print_r($newStr);
?>

我在找这个:

$str = "abc xyz asdf @ Rs1.5/day.poi qwerty.";
$str = preg_replace("/Rs(\d+)(?:\.\d*)/", "Re$1", $str);

谢谢

要删除数字的小数部分吗?你的问题不清楚。这取决于字符串的含义,我觉得这个字符串很奇怪。例如,使用explode或类似的语法分析会让所有人都感觉到更多的意义!我在搜索表达式/Rs | Re?\s*\?\s*\d*\s*\?\s*\d+\s*Rs | Re?\s*\?\s*\/?\s*\d*\s*每?天?/iit如果数字为1,则应为Re,否则这不起作用${1} 生成一个通知未定义变量。我想你应该用$1来代替,但不幸的是,它没有任何作用,比如:用组1替换组1!!嗯,奇怪。。一定忘了从一开始就删除两个组,以确保小数点前只有数字。我没有收到通知,也许我的php坏了我将进行编辑以解决此问题。有时我的str会变成abc xyz asdf@Re1/day.poi qwerty。我可能需要用Rs5替换Re1/天/5days@Sayuj当前位置我看不出你到底想要什么。您能否在问题中提供一些输入字符串的示例以及您希望输出的内容。
$str = "abc xyz asdf @ Rs1.5/day.poi qwerty.";
$rep = "(Rs|Re)?\s*\.?\s*\d*\.?\d+\/\d*days?"
$str = preg_replace($rep, "Re$1", $str)