return result
list_a = ['104066666', '', '00', '0000', '', '', '']
print(filter_non_zero_items(list_a))
import re
num_unit_str_list = [
'104066666.00 PC',
'30099999.00 SH',
'2155555.00 SH',
'3434.00 SH',
'21999995.00 SH',
'1.066650 SH',
'4 X 2500.000 KG',
'20 X 5000.000 KG',
'10 X 2500 吨',
'1500888999 L',
'99666',
'2 X 1.11 kg'
for s1 in num_unit_str_list:
pattern = r'[1-9]\d*\0.\d|\d*|0.\d*[1-9]\d*'
re_res = re.findall(pattern, s1)
obj = [i for i in re_res if i]
obj = filter_non_zero_items(obj)
res = 0
uom = ''
if s1.split(' ') and not re.findall(r'\d+', s1.split(' ')[-1]):
uom = s1.split(' ')[-1]
else:
uom = '无单位'
if len(obj) == 1:
res = float(obj[0])
elif len(obj) == 2:
res = float(f"{obj[0]}") * float(f"{obj[1]}")
elif len(obj) == 3:
res = float(f"{obj[0]}") * float(f"{obj[1]}.{obj[2]}")
print(s1, res, uom, len(obj))
public static String number(String name){
name = name.replaceAll("[^(0-9)]", "");
return name;
public static void main(String[] args) {
String name1="";
String name2="";
String a = "浙江YD1
常用
正则表达式
返回导航页正则语法
正则表达式
以
匹配
字符串
中的
数字
正则表达式
,提取
单位
(
数字
后面的部分)正则原理Java用法matcher的两个方法的区别
返回导航页
返回导航页
正则表达式
以
匹配
字符串
中的
数字
String regex = "[+-]?[0-9.]+";
正则表达式
,提取
单位
(
数字
后面的部分)
String regex = "^.*\\d(.*)$";
Java用法
//
正则表达式
以
匹配
字符串
中的
数字
String regex = "[+-]?
这里只讲关于各种
数字
的正则
匹配
规则,下面提供了大量的实现希望对你有所帮助啊。
正则表达式
^([0-9]*|d*.d{1}?d*)$
匹配
.568 | 8578 | 1234567.1234567
不
匹配
568. | 56.89.36 | 5.3.6.9.6
正则表达式
^$(d{1,3}(,d{3})*|(d+))(.d{2})?$
匹配
$0.84 | $123458 |
function numberWithCommas(n) {
// 正则解释:
匹配
到 \B(非单词边界)后, 后面要
匹配
到 (\d{3})+(?!\d)
// (\d{3})+ 至少
匹配
到一次或多次三个
数字
// (?!\d) 同时后面不是
数字
的话, 就
匹配
.
// 注意, 后面的(?=)那一段代码只是判断的规则,
匹配
到后只替换掉\B
// 而\B 元字符
匹配
的是非单词边界
let num =...
来源于知乎专栏:https://zhuanlan.zhihu.com/p/29619457
这个是我在知乎上看到前辈的专题,里面的专栏帮助了我很多,推荐大家去看看。
文章底部有很熟悉的一张正则表附图
1. 校验
数字
的表达式
1
数字
:^[0-9]*$
2 n位的
数字
:^\d{n}$
3 至少n位的
数字
:^\d{n,}$
4 m-n位的
数字
:^\d{m,n}$
5 零和非零开头...
"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)
4 m-n位的
数字
:^\d{m,n}$
5 零和非零开头的
数字
:^(0|[1-9][0-9]*)$
6 非零开头的最多
带
两位小数的
数字
:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7
带
1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
9 有两位小数的正实数:^[0-9]+(.[0