如果字符串超過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