javascript - 如何使用正则表达式匹配大多数非数字?

标签 javascript python regex perl

我想替换字符串中除前导减号 ( - ) 之外的所有非数字字符。

例如,hu应从 -123hu8 中删除,和-jk应从 34-jk8 中删除.

我正在使用以下正则表达式,但它不起作用。

^[^-]|[^\d\.]

我有什么遗漏的吗?

最佳答案

因为环顾四周的成本很高,

(?!^-)\D+

可能比

(?:^-?+|\d++)\K\D+

我不知道这对你来说是否重要。

测试:

>perl -e"CORE::say $ARGV[0] =~ s/(?:^-?+|\d++)\K\D+//rg;" -- -123hu8
-1238

>perl -e"CORE::say $ARGV[0] =~ s/(?:^-?+|\d++)\K\D+//rg;" -- 123hu8
1238

>perl -e"CORE::say $ARGV[0] =~ s/(?:^-?+|\d++)\K\D+//rg;" -- a123hu8
1238

>perl -e"CORE::say $ARGV[0] =~ s/(?:^-?+|\d++)\K\D+//rg;" -- -a123hu8
-1238

>perl -e"CORE::say $ARGV[0] =~ s/(?:^-?+|\d++)\K\D+//rg;" -- 34-jk8
348

关于javascript - 如何使用正则表达式匹配大多数非数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55498300/

相关文章:

javascript - 使用表单将变量从 JavaScript 发布到 PHP

javascript 表单验证不适用于 chrome 和 FF

Ruby:删除小数点后(包括)小数点后的所有内容

javascript - reselect如何影响组件的渲染

javascript - 在 JavaScript 中检查日期是否在给定年份的 1 月 1 日之前

python - 检查目录下是否有.format文件

python - 控制对系统各部分以及某些信息的访问

python - 如何将参数传递给 Airflow on_success_callback 和 on_failure_callback

ruby 正则表达式 gsub 字符串的特定部分

python - 为什么这个正则表达式会产生四个项目?