Trim 小数点前后全为零正则表达式
Trim all zeros before and after decimal Regex
Objective-C:我想删除尾部和前部的所有零,但有一些例外。例如:
0.05000 -> 0.05
000.2300 -> 0.23
005.0 -> 5
500.0 -> 500
60.0000 -> 60
56.200000 -> 56.2
56.04000 -> 56.04
我试过的是这样的[.0]+$|(^0+)
。但这对我想要实现的目标没有帮助。我将 NSString 与 RegularExpressionSearch 一起使用,如下所示:
NSString *cleaned = [someString stringByReplacingOccurrencesOfString:@"[.0]+$|(^0+)"
withString:@""
options:NSRegularExpressionSearch
range:NSMakeRange(0, self.doseTextField.text.length)];
如有任何帮助,我们将不胜感激。
是这样的吗?
let numberStrings = [
"0.05000",
"000.2300",
"005.0",
"500.0",
"60.0000",
"56.200000",
"56.04000"
]
print(numberStrings.map({
String(Double([=10=])!).stringByReplacingOccurrencesOfString("\.0*$", withString: "", options: .RegularExpressionSearch, range: nil)
}))
有时最好将任务分解,每次用 @""
的替换字符串按顺序尝试:
@"^0+(?!\.)"
- 0 的初始序列 not 后跟一个点。这将 trim“003.0”变为“3.0”,“000.3”变为“0.3”。
@"(?<!\.)0+$"
- 尾随的零序列 not 前面有一个点。所以“3.400”转到“3.4”,“3.000”转到“3.0”
@\.0$
- 删除尾随的“.0”。前两个 RE 可能会故意给你留下“.0”,这样你就可以在这一步中删除点。
这不是分解它的唯一方法,但三个基本任务是删除前导零、删除尾随零和清理。您也根本不需要使用 RE,一个简单的有限状态机可能是一个不错的选择。
重要提示:以上假设字符串包含小数点,如果它可能不包含你也需要处理它(留作练习)。
HTH
Objective-C:我想删除尾部和前部的所有零,但有一些例外。例如:
0.05000 -> 0.05
000.2300 -> 0.23
005.0 -> 5
500.0 -> 500
60.0000 -> 60
56.200000 -> 56.2
56.04000 -> 56.04
我试过的是这样的[.0]+$|(^0+)
。但这对我想要实现的目标没有帮助。我将 NSString 与 RegularExpressionSearch 一起使用,如下所示:
NSString *cleaned = [someString stringByReplacingOccurrencesOfString:@"[.0]+$|(^0+)"
withString:@""
options:NSRegularExpressionSearch
range:NSMakeRange(0, self.doseTextField.text.length)];
如有任何帮助,我们将不胜感激。
是这样的吗?
let numberStrings = [
"0.05000",
"000.2300",
"005.0",
"500.0",
"60.0000",
"56.200000",
"56.04000"
]
print(numberStrings.map({
String(Double([=10=])!).stringByReplacingOccurrencesOfString("\.0*$", withString: "", options: .RegularExpressionSearch, range: nil)
}))
有时最好将任务分解,每次用 @""
的替换字符串按顺序尝试:
@"^0+(?!\.)"
- 0 的初始序列 not 后跟一个点。这将 trim“003.0”变为“3.0”,“000.3”变为“0.3”。@"(?<!\.)0+$"
- 尾随的零序列 not 前面有一个点。所以“3.400”转到“3.4”,“3.000”转到“3.0”@\.0$
- 删除尾随的“.0”。前两个 RE 可能会故意给你留下“.0”,这样你就可以在这一步中删除点。
这不是分解它的唯一方法,但三个基本任务是删除前导零、删除尾随零和清理。您也根本不需要使用 RE,一个简单的有限状态机可能是一个不错的选择。
重要提示:以上假设字符串包含小数点,如果它可能不包含你也需要处理它(留作练习)。
HTH