我正在尝试构造一个正则表达式(用于Java)以截断小数点后的零。例如
想法是以最紧凑的形式表示实数(或整数)。
这是我构造的:
^(-?[.0-9]+?)\.?0+$
我$1
用来捕获截断的数字字符串。
上面的模式的问题是50被截断为5。我需要某种方式来表示0+
必须遵循.
(小数点)。
我尝试过使用负数落后,但没有任何匹配。
最好的解决方案可能是针对该任务使用特定于语言的内置方法。
如果您无法使用它们,则可以使用
^(-?\d+)(?:\.0+|(\.\d*?)0+|\.+)?$
并替换为$1$2
。
请参阅regex演示。相应地调整正则表达式。这里是解释:
^
-html" target="_blank">字符串开始(-?\d+)
-组1捕获1或0减符号,然后捕获1或多个数字(?:\.0+|(\.\d*?)0+|\.+)?
-一个 可选的 (由于拖尾而匹配1或0次?
)非捕获组,与3个替代方案匹配:
\.0+
-小数点后跟1+零(\.\d*?)0+
-第2组使用任意0+数字捕获点,并尽可能少并匹配1+零\.+
-( 可选分支,如果不需要,您可以将其删除 )-匹配尾随点$
-字符串结尾。Java演示:
String s = "50.000\n50\n50.100\n50.040\n50.\n50.000\n50.500\n50\n-5";
System.out.println(s.replaceAll("(?m)^(-?\\d+)(?:\\.0+|(\\.\\d*?)0+|\\.+)?$", "$1$2"));
// => [50, 50, 50.1, 50.04, 50, 50, 50.5, 50, -5]
我有一个正则表达式,它适用于 (字母数字-不分大小写) (仅限字母-与大小写无关) (只允许使用特殊字符和) null 我们是否可以修改上面的正则表达式来限制上面的两个测试用例?
昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?
本文向大家介绍正则表达式零宽断言详解,包括了正则表达式零宽断言详解的使用技巧和注意事项,需要的朋友参考一下 正则表达式零宽断言: 零宽断言是正则表达式中的难点,所以本章节重点从匹配原理方面进行一下分析。零宽断言还有其他的名称,例如"环视"或者"预搜索"等等,不过这些都不是我们关注的重点。 一.基本概念: 零宽断言正如它的名字一样,是一种零宽度的匹配,它匹配到的内容不会保存到匹配结果中去,最终匹配结
本文向大家介绍linux shell 路径截取正则表达式,包括了linux shell 路径截取正则表达式的使用技巧和注意事项,需要的朋友参考一下 最近写脚本,需要对脚本中函数传递的路径参数进行截取,发现了以下比较好用的方法,记录下: file=/dir1/dir2/dir3/my.file.txt 我们可以用${ }分别替换获得不同的值: ${file#*/}:拿掉第一条/及其左边的字串:dir
在 OpenResty 中,同时存在两套正则表达式规范:Lua 语言的规范和 ngx.re.* 的规范,即使您对 Lua 语言中的规范非常熟悉,我们仍不建议使用 Lua 中的正则表达式。一是因为 Lua 中正则表达式的性能并不如 ngx.re.* 中的正则表达式优秀;二是 Lua 中的正则表达式并不符合 POSIX 规范,而 ngx.re.* 中实现的是标准的 POSIX 规范,后者明显更具备通用
一、概述 二、匹配单个字符 三、匹配一组字符 四、使用元字符 五、重复匹配 六、位置匹配 七、使用子表达式 八、回溯引用 九、前后查找 十、嵌入条件 参考资料 一、概述 正则表达式用于文本内容的查找和替换。 正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或者软件。 正则表达式在线工具 二、匹配单个字符 . 可以用来匹配任何的单个字符,但是在绝大多数实现里面,不能匹配换行符; . 是元字