5

次の正規表現を使用して、スペースをキャメルケースの文字列に挿入しています

var regex = /([A-Z])([A-Z])([a-z])|([a-z])([A-Z])/g;

使用例

var str = "CSVFilesAreCoolButTXTRules";
str = str.replace( regex, '$1$4 $2$3$5' );
// "CSV Files Are Cool But TXT Rules"

これは問題なく動作しますが、文字列内の数字の前後にスペースを入れたいのですが、個々の数字の間にスペースを挿入したく$ありません。数字。

$また、数字、文字、記号、および数字内のドット以外の文字を削除したいと考えてい.ます。

例えば、

MRRPLowPriceUSD$10.10HighPriceUSD$1998.59595CommentsNoChangeReportedNTPL1001KSE-100INDEX

なるべき

MRRP 低価格 USD $10.10 高価格 USD $1998.59595 コメント 変更なし 報告された NTPL 1001 KSE 100 INDEX

-が削除されたことに注意してください。

任意の支援をいただければ幸いです。

関連: put-space-in-camel-case-string-using-regular-expression .

4

1 に答える 1

10

この正規表現を試して、肯定的な先読みを使用して置き換えます。

var regex = /([^A-Za-z0-9\.\$])|([A-Z])(?=[A-Z][a-z])|([^\-\$\.0-9])(?=\$?[0-9]+(?:\.[0-9]+)?)|([0-9])(?=[^\.0-9])|([a-z])(?=[A-Z])/g;
var str = "CSVFilesAreCool123B--utTXTFoo12T&XTRules$123.99BAz";
str = str.replace(regex, '$2$3$4$5 ');
// CSV Files Are Cool 123 B ut TXT Foo 12 T XT Rules $123.99 B Az

(正規表現)

于 2013-03-13T16:53:09.117 に答える