如果字符串超过3位(电话号码应该被替换),我想替换字符串中的数字,并且如果数字后面跟有$,它不应该替换数字小数点。我用下面的表达式。Java用于替换特定字符串的正则表达式
“\ d {3} +(?!\ $/\。)”
问题我面对的是,它正在取代,因为我希望替换十余位号码一些数字是一些ID超过10位的数字。此外,如果一个数字在小数点后有3位以上的数字,这些数字也会被替换。如果它有小数点,我不想要一个数字被替换。有些身体可以帮助吗?
例如,说一个数字字符串“3452678916381914”。其实它必须被替换。但上面的正则表达式并没有取代它。对于数字如123445.567美元 - 这些数字不应该被取代。但上述正则表达式替换45.567
给出一些示例输入/输出。 – rafid059
我没有得到超过10位数字的位。所以,你需要匹配长度为4-9的int值,而不是跟在'$'之后?试试['(?<!\。)\ b \ d {4,9} + \ b(?!\ $ | \。\ d)'](https://regex101.com/r/0X2Y3j/2) 。 –
'(?<![\。\ $])\ d {3,}(?![\。\ $])'? – Skycc