正则表达式替换小数

2024-02-24

我正在尝试构建一个正则表达式来替换任何不符合以下格式的字符:

任意位数,然后可选(单个小数点,任意位数)

i.e.
123            // 123
123.123        // 123.123
123.123.123a   // 123.123123
123a.123       // 123.123

我在 php 中使用 ereg_replace ,最接近我管理的工作正则表达式是

ereg_replace("[^.0-9]+", "", $data);

这几乎是我所需要的(除了它允许任意数量的小数点)

i.e.
123.123.123a    // 123.123.123

我的下一次尝试是

ereg_replace("[^0-9]+([^.]?[^0-9]+)?", "", $data);

which was meant to translate as
[^0-9]+        // any number of digits, followed by
(              // start of optional segment
  [^.]?        // decimal point (0 or 1 times) followed by
  [^0-9]+      // any number of digits
)              // end of optional segment
?              // optional segment to occur 0 or 1 times

但这似乎只允许任意数量的数字,仅此而已。

请帮忙

Thanks


尝试以下步骤:

  1. 删除除以下字符外的任何字符0-9 and .
  2. 删除任何.第一位小数点后面。

这是使用正则表达式的实现:

$str = preg_replace('/[^0-9.]+/', '', $str);
$str = preg_replace('/^([0-9]*\.)(.*)/e', '"$1".str_replace(".", "", "$2")', $str);
$val = floatval($str);

另一种只有一个正则表达式:

$str = preg_replace('/[^0-9.]+/', '', $str);
if (($pos = strpos($str, '.')) !== false) {
    $str = substr($str, 0, $pos+1).str_replace('.', '', substr($str, $pos+1));
}
$val = floatval($str);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式替换小数 的相关文章

  • 在 sed 中插入换行符 (Mac OS X)

    如何在 sed 的替换部分插入换行符 此代码不起作用 sed s 1234 n 1 g input txt gt output txt 其中 input txt 是 test1234foo123bar1234 和output txt应该是
  • 从单个正则表达式匹配文件名和文件扩展名

    我确信这一定很容易 但我很挣扎 var regexFileName match filename var regexFileExtension w match file extension function displayUpload va
  • MySQL 启动错误 - 根元素丢失

    我在 Windows Server 2003 R2 上安装 MySQL 大约两个月了 启动时 我们会看到一个错误 显示 高严重性错误 根元素丢失 然后是另一个高严重性错误 显示 在调用 WriteToLog 方法之前必须定义日志文件路径 任
  • 使用 Laravel 返回一对多 Eloquent 关系中的最后一条记录

    假设存在一个One To Many关系 其中用户有许多工作 以及最后一条记录job表是用户当前的作业 让用户返回上一份工作的更好方法是什么 这是我尝试过的 User Class public function ejob return thi
  • 为什么 PHP 字符串连接运算符是点 (.)? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将UTF-8编码的汉字从MySql正确导出到SQL

    过去三天我们正在与严重的问题作斗争 我们从PhpmyAdmin导出MySql数据库文件 数据库条目中写入的数据是带有UTF 8字符集的中文 导出后将其转换为拉丁字符集 现在我们正在将此数据库SQl文件导入到其他主机 我们在UTF 8和排序规
  • 在 PHP 中扩展单例

    我正在使用一个 Web 应用程序框架 其中一部分由许多服务组成 所有服务均以单例形式实现 它们都扩展了一个 Service 类 其中实现了单例行为 如下所示 class Service protected static instance p
  • 使用正则表达式验证字符串是否安全

    我有一个网站 用户可以在其中选择用户名 目前 他们可以输入几乎任何字符 包括 ETC 我知道我可以使用正则表达式 这可能就是我的选择 我将使用否定集 我认为这是正确的工具 如下所示 那么 我怎样才能知道要放入该集合中的所有非法字符呢 我可以
  • 会话劫持和 PHP

    让我们只考虑服务器对用户的信任 会话固定 为了避免我使用的固定session regenerate id 仅在身份验证中 login php 会话侧劫持 整个站点的 SSL 加密 我安全吗 阅读 OWASPA3 破坏的身份验证和会话管理 h
  • WooCommerce - 按下按钮时更新所有产品描述(全站点)

    我一直在使用以下代码 希望能够创建一个按钮 按下它 然后我网站上的所有描述都会自动生成 梦想 我的问题 为什么我的代码没有按预期更新所有产品 到目前为止 我有以下代码 虽然它在一定程度上可以工作 但当按钮位于产品页面上时无法正常工作 它将更
  • 关闭语句后的 mysqli + xdebug 断点导致许多警告

    我有一段这样的代码 conn new mysqli host username passwd dbname stmt conn gt prepare SELECT stmt gt bind param stmt gt execute stm
  • PHP 和 MySql 检查表是否为空

    我有点菜鸟 而且我很难过 我需要一些代码来搜索数据库表以查找与 id 变量匹配的行 我需要抓取该表 描述 中的一个字段 如果它为空 我需要显示一条消息 如果不是另一条消息 这是我的代码 我知道我需要添加 mysqli 转义字符串 只需从内存
  • 每 n 个字符后插入连字符,末尾不添加连字符

    我在用着chunk split 每第四个字母后添加一个 但它也会在字符串末尾添加一个 这是我不想要的 代码如下 function GenerateKey input generated strtoupper md5 input uniqid
  • 无法在Phalcon php中调用除indexAction之外的indexController的操作

    我的 xampp htdocs 目录中有一个名为 phalcon 的简单项目 并且我将 apache 配置为指向该文件夹 以便我可以在浏览器中转到 phalcon 当我尝试打开索引 默认 以外的索引控制器视图时 会出现问题 例如 我在索引控
  • 使用 PHP 上传、调整图像大小并裁剪图像中心

    我想要创建一个非常非常基本的上传 调整大小和裁剪 PHP 脚本 其功能与 Twitter 用于上传头像图片的方法相同 无论如何我最后检查过 我希望脚本拍摄任何尺寸的图像 将最短边的大小调整为 116 像素 然后裁剪顶部和底部 如果是横向 则
  • Doctrine QueryBuilder 重用部件

    我想计算所有符合我的条件的字段 并使用学说查询生成器逐页获取它们 我生成的查询取决于我的过滤器字段 第一部分是计算记录 以便我可以计算页数 qb em gt createQueryBuilder qb gt select COUNT m i
  • 如何编辑 Woocommerce 单一产品元模板中显示的内容?

    我正在为客户做一些工作并使用 wordpress woocommerce 他们要求我将类别移动到我已经完成的单个产品页面上的产品名称下 但他们不希望它打印 类别 类别 1 类别 2 等 他们希望删除 类别 并且它实际上只列出类别的名称 而不
  • 在 Bluemix 中激活 PHP 扩展

    这纯粹是 Bluemix 问题 我的代码在本地主机上顺利运行 但是当我将其迁移到 Bluemix 时 我的数据库连接失败了 检查日志 我发现问题 调用未定义的函数 mysqli init HTTP 响应 500 我发现扩展已被禁用以使其更小
  • 如何将十进制转换为二进制并将其位值恢复到数组中?

    例如 result func 14 The result应该 array 1 1 1 0 如何实施func decbin http docs php net decbin会产生一个字符串二进制字符串 echo decbin 14 outpu
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d

随机推荐

  • 模板类中的 C++ 静态常量数组初始化

    我有以下模板类 template
  • 哪些注册表项决定 Outlook 配置文件

    我需要编写 VBScript 代码来检查 Outlook 是否使用 MAPI 配置文件或 RPC over HTTP S 配置文件 哪个注册表项决定相同 这在 Outlook 2013 中发生了变化 Outlook 2013 开发人员的新增
  • 如何在 Blazor 中直接更改 css(不带变量)?

    我正在使用 Blazor 的服务器端 我想改变body的CSS 在 Jquery 中我可以轻松地编写这样的代码 body css overflow y hidden 但是 通过本教程 Blazor 更改验证默认 css 类名称 https
  • $http.jsonp() 是如何工作的

    这是一个例子 json file name Jon Skeets name Bill Joy 如果这个 json 文件的获取方式为 http jsonp pathToFile then 它返回 404 没有任何问题pathToFile我已经
  • Blade 中的嵌套部分

    我正在研究 Blade 如何实现 section 但它的工作方式与我习惯的 Twig 略有不同 看来你不能将 sections嵌套在一起 Example layout blade php 基本布局文件 favicons meta conte
  • 始终触发且仅触发一次的“transitionend”事件

    我需要一个特别的transitionend like 事件 在所有转换完成后触发一次 或者如果 CSS 中没有定义转换则立即触发 这是我到目前为止所想到的 function event special transitionsComplete
  • 基于媒体查询的可选 Javascript 执行

    我试图弄清楚如何根据当前设备 媒体查询选择性地运行一段 javascript 我正在使用 Twitter Bootstrap 并且基本上有两个版本的媒体查询 media min width 980px media max width 979
  • HashMap(key: String, value: ArrayList) 返回一个 Object 而不是 ArrayList?

    我将数据存储在 HashMap 中 键 String 值 ArrayList 我遇到问题的部分声明了一个新的 ArrayList current 在 HashMap 中搜索字符串 dictCode 如果找到 则将 current 设置为返回
  • SQL aspnet_profile

    知道如何使用 SQL 从基于 UserID 的 aspnet profile 表中获取用户名字和姓氏 因为我想在 Telerik Reporting 中使用作为用户参数 示例行 名字是 George 姓氏是 Test UserID 06b2
  • 如何使 IvParameterSpec 随机但仍解密

    对于 Java 中的加密 文章位于http cwe mitre org data definitions 329 html http cwe mitre org data definitions 329 html声明初始化向量每次都应该不同
  • 将对象数组作为 TempData[] 传递给查看

    我想从后操作返回两个值到视图中RedirectToAction TempData 似乎是理想的选择 因为数据仅用于在用户保存后显示成功消息 我想在成功消息中显示用户刚刚保存的图像的小缩略图以及所保存项目的标题 目前我正在将所有数据作为new
  • 刷新 Integration Services 中的目标架构元数据

    我一直致力于一个包含 150 多个表的大型 ETL 项目 在设计过程中 我必须对几个表的目标列名称和数据类型进行重大更改 我的问题是我无法让 SSIS 查看我更改的表的新架构 所以我想知道如何让 SSIS 刷新此架构 我觉得很荒谬 没有办法
  • 我可以拥有一个 ID 以数字开头的元素吗?

    我可以有一个元素吗id以数字开头或完全是数字 例如 像这样的东西 div div 我可以有一个以 id 为数字的 div 吗 是的你可以 但使用 CSS 选择器选择 设计它会很痛苦 id仅由数字组成的值在 HTML 中完全有效 http w
  • VueJS 有没有办法从父级触发组件方法?

    我一直在搜索信息 只找到了一种从子组件发出事件的方法 然后可以在父组件中监听这些事件 有没有办法从父组件调用子方法 是的 只需在 Children 数组中找到您的组件 或者通过 ref 属性获取它 然后调用方法 ref doc https
  • 使用 subplot2grid 时如何共享x

    我是一名 Matlab 用户 最近转换为 Python 大部分 Python 技能都是我自己掌握的 但在绘图方面我遇到了困难 需要一些帮助 这就是我正在尝试做的 我需要制作一个由 3 个具有以下属性的子图组成的图形 子图布局为 311 31
  • 如何在 WP7 中以编程方式设置选定的全景项目

    我在 WP7 应用程序中使用全景控件 其中一个 PanoramaItems 将您带到另一个页面 然后您可以通过 EmailComposeTask 发送电子邮件 如果您不选择发送电子邮件并按后退按钮 全景图将返回到您上次选择的项目 但是 如果
  • 尽管包含 ,但 Clang 仍拒绝 type_info 不完整

    我不明白为什么 Clang 拒绝以下代码 include
  • React 的“memo”在返回的函数中删除了泛型

    我想使用 React 的memo对于一个具有generic https www typescriptlang org docs handbook generics html争论 不幸的是 泛型参数默认为泛型 并且所有花哨的泛型推导逻辑都丢失
  • String.Contains(Array?..) - VB.NET 中的坏词过滤器

    有没有办法检查字符串是否包含数组中的一项 像这样 dim txt as String badword1 you you son of a badword2 dim Badwords as String badword1 badword2 b
  • 正则表达式替换小数

    我正在尝试构建一个正则表达式来替换任何不符合以下格式的字符 任意位数 然后可选 单个小数点 任意位数 i e 123 123 123 123 123 123 123 123 123a 123 123123 123a 123 123 123