Objective c 在十进制正则表达式前后修剪所有零
目标C:我想去掉所有的零,除了一些例外。例如:Objective c 在十进制正则表达式前后修剪所有零,objective-c,regex,nsstring,Objective C,Regex,Nsstring,目标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 *cleane
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($0)!).stringByReplacingOccurrencesOfString("\\.0*$", withString: "", options: .RegularExpressionSearch, range: nil)
}))
有时最好将任务分解,每次使用替换字符串
@“
按顺序尝试以下操作:
@“^0+(?!\\)”
-0的初始序列后面没有点。这会将“003.0”修剪为“3.0”,将“000.3”修剪为“0.3”@”(?关于500
?或-1000
?.50
?您是否只想说明任何可能的前导/尾随零?为什么要使用正则表达式?只需将字符串转换为数字并返回到字符串?或尝试替换为$1$2
。或分组:您可能对NSNumberFormatter
感兴趣,并避免使用正则表达式ex?@rmaddy我试着从字符串转换为数字,然后再转换回字符串。不起作用。将问题分解为可理解、可测试的部分的好建议-六个月后,我非常感激这种事情!因为这似乎是一种很好的做法,现在我将使用Wiktor对单行正则表达式的答案。即,或者尝试“^(0)+(?=\\)^0+(?=[1-9])\\.0+$(\\.\\d*?)0+$”
替换为$1$2
。或一个分组的:“^(?(0)+(?=\\)\124;(?=[1-9])(?:\.0+\\\\.\d*?)0$”