我有以下 CSV:
COLUMN_A;COLUMN_B;COLUMN_C;COLUMN_D;COLUMN_E;COLUMN_F;COLUMN_G;COLUMN_H;COLUMN_I;COLUMN_L;
01234;AB ;00001; ;100000001; ;ABC; 0000000000099998,080;XYZ ;
只有當值不只包含空格時,我才想洗掉空格。所以結果會是這樣的:
COLUMN_A;COLUMN_B;COLUMN_C;COLUMN_D;COLUMN_E;COLUMN_F;COLUMN_G;COLUMN_H;COLUMN_I;COLUMN_L;
01234;AB;00001; ;100000001; ;ABC; 0000000000099998,080;XYZ;
我知道我可以使用 find ' ' replace '' 所以空間不會被任何東西取代。但是通過這種方式,我將洗掉所有空格,并且我想在沒有任何其他字符的地方保留帶有空格的字串。
如果我必須使用正則運算式,我需要連接以下運算式:
[a-zA-Z]
[\s]
[;]
所以我可以在查找框中使用 [a-zA-Z][\s][;],
但我不知道如何用 [a-zA-Z][;] 替換它找到的內容
uj5u.com熱心網友回復:
您可以區分空格字串不以分號或空格作為前綴的情況,以及空格字串不以分號或空格作為前綴的情況。
為此,您可以使用環視:
查找內容:\h (?![;\s])|(?<![;\s])\h
替換為:(空)
? 正則運算式
Replace all
解釋
\h
匹配水平空白字符(所以不是換行符)(?![;\s])
是負面的展望:當前位置后面的內容不應該是這些字符之一,但它們不包含在整體匹配中。(?<![;\s])
背后是負面的看法:當前位置的前面不應該是那些字符之一,但它們不包含在整體匹配中。
uj5u.com熱心網友回復:
在查找框中:
([a-zA-Z])([ ]{1,})([;])
在替換框中
$1$3
uj5u.com熱心網友回復:
- Ctrl H
- 找什么:
(?:;|\G(?!^))\K\h*([^\s;] )\h*(?=[^;]*;)
- 用。。。來代替:
$1
- TICK 環繞
- 選擇 正則運算式
- Replace all
解釋:
(?: # non capture group
; # semi-colon
| # OR
\G # restart from last match position
(?!^) # not the beginning of line
) # end group
\K # forget all we have seen until this position
\h* # 0 or more horizontal spaces
( # group 1
[^\s;] # 1 or more any character that is not a space or semi-colon
) # end group
\h* # 0 or more horizontal spaces
(?= # positive lookahead, make sure we have after:
[^;]* # 0 or more any character that is not a semi-colon
; # a semi-colon
) # end lookahead
截圖(之前):
截圖(之后):
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/508388.html