Regular-Expression

數據清理問題 - 用於刪除尾隨空格和逗號組合的正則表達式

  • November 25, 2019

我有地址字元串(由於初始程式不佳)允許輸入過多的自由文本。在清理這個繼承的爛攤子的過程中,我注意到在地址欄位的末尾,經常有(而且經常不是)我想去掉的逗號。

問題是(再次,經常!)那些輸入數據的人(由線路支付……)輸入的字元串如下:

`address_1_string  ,  `

那是 address_1_string 後跟兩個空格,然後是我要刪除的逗號,然後是另外兩個空格。address_string_1空格的數量(在逗號之前或之後)是任意的,通常從 0 到 5。由於本身可能具有內部(有效)逗號這一事實,問題變得更加複雜。

所以,我正在尋找的是一個正則表達式,它到達行尾,刪除任何尾隨空格,第一個逗號,然後是更多空格,直到有效

$$ a-zA-Z0-9 $$($$ :alphanum: $$?) 字元被找到。 我有正則表達式的概念,但這超出了我的工資等級。這是我在 Stackexchange 上的第一篇文章,所以如果我在錯誤的地方,請重定向我。TIA。

< input sed 's/[[:space:],]*$//' > output

將刪除行尾的所有空格和逗號字元。

為了在適當的位置編輯文件,一些sed實現有一個受’s選項-i啟發的選項:perl``-i

sed -i 's/[[:space:],]*$//' input-and-output    # GNU, busybox, NetBSD, OpenBSD
sed -i '' 's/[[:space:],]*$//' input-and-output # FreeBSD, macOS

引用自:https://unix.stackexchange.com/questions/553613