[討論] regexprep 如何精確地替換某個字?

看板MATLAB作者 (阿泰斯)時間12年前 (2013/08/27 16:19), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串1/1
如: aa={'frequency','123456789u'}; 想把'u'換成'*10^-6' 會變成 ans={'freq*10^-6ency','123456789*10^-6'} 如何精確替? frequency要保留住不要改變 有辦法嗎? 感謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.157

08/28 08:08, , 1F
regexprep(aa, '(\d+)u$', '*10^-6');
08/28 08:08, 1F

08/28 08:09, , 2F
上面打錯了, regexprep(aa, '(\d+)u$', '$1*10^-6');
08/28 08:09, 2F

08/28 08:11, , 3F
這個用法有限制, 純文字部份不能出現'text1u'這種字串
08/28 08:11, 3F

08/28 14:59, , 4F
能說明一下那個限制嗎@@? 看不太懂
08/28 14:59, 4F

08/28 16:31, , 5F
(\d+)u$ 表示尋找"連續數字後的u, 且u要出現在結尾
08/28 16:31, 5F

08/28 16:32, , 6F
但text1u也符合這個條件, 會被換成text1*10^-6
08/28 16:32, 6F

08/28 16:33, , 7F
如果你的字串都是英文字, 那麼就沒有上述的困擾, 就用吧~
08/28 16:33, 7F
文章代碼(AID): #1I7642BO (MATLAB)
文章代碼(AID): #1I7642BO (MATLAB)