- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可能只是遗漏了一些简单的东西,但是 s///
没有将更改后的字符串分配给我的变量。我尝试了一个更简单的 s///
,它确实有效。
如果超过三位,此示例应删除小数点后的任何数字。
my $price = 12.34567;
print "$price\n";
$price =~ s/(\.\d\d[1-9]?)d*/$1/;
print "$1\n"; # This is printing .345 correctly.
print "$price\n"; # This should be 12.345 but is unchanged.
my $story = "dog";
$story =~ s/(do)g/$1/;
print "$story\n"; # This works. It's changed to "do"
编辑:如果第三位数字是零,它应该在两位数之后修剪它。
《美化股价:...始终取小数点后的前两位,只有第三位不为零时才取第三位。然后,删除任何其他数字。
最佳答案
你的替换是错误的。
$price =~ s/(\.\d\d[1-9]?)d*/$1/;
应该是
$price =~ s/(\.\d\d[1-9]?)\d*/$1/;
你自己的版本匹配是因为 d*
可以匹配一个空字符串,它这样做是因为小数点后第三位后没有 d
个字符
坚持任何第三位十进制数字都必须非零似乎很奇怪。所以 0.00
可以,但是 0.000
不行,并且会被截断为前者。这是你想要的吗?
关于regex - 精通正则表达式书中的 Perl 替换示例对我不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47819049/
正则表达式可以: •测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证 •替换文本。可以在文档中使用一个正则表达
我正在上 udemy 的类(class),我偶然发现了这段更改窗口背景的代码。问题是函数 randColor 失去了我。我想知道到底发生了什么。 我知道声明了一个名为 randColor 的函数,然后
我是一名本科生,最近受雇于今年夏天和明年秋天的合作社。据我所知,我将编写很多我觉得很舒服的 C++,但我并没有特别多的实际编写 C++ 的经验。 我想花时间真正深入研究 C++ 并更加熟练地使用它。在
我是一名使用 ASP.NET、C# 等的 .NET webdev...我 5 多年前在大学里“学习”了 javascript,可以用它做基本的工作。但是我想知道精通它是否有用。 我为什么要学习 Jav
我在 jQuery 方面非常高效,已经在我公司的多个项目中实现了它。然而,当我阅读诸如 node.js 之类的东西时,我发现自己有点迷茫。 我是否必须回到基础学习 JavaScript 语言,还是应该
我是一名优秀的程序员,十分优秀!