1

私は次のような値を得ました

\w{1,2}-\w{1,2}\d{1,4} and \w{1,2}-\w{1,2} \d{1,4}

これらの値を変換します。

AB-CD 1 -> AB-CD1
AB-CD1 -> AB-CD1

使ってやってます

[ ]{1}[\d]{1} 

" " を "" に置き換えます。これはうまくいきます。

しかし今、次の変換を行う必要があります。

AB-CD1 -> AB-CD 1
AB-CD 1 -> AB-CD 1

任意の桁を狙って先読みしてみた

(?=\d) 

ただし、テキストに既にスペースが含まれている場合は、2 つのスペースが表示されます。\w と \d の間のスペース (またはなし) を選択する必要があります - どうすればよいですか?

4

3 に答える 3

1

あなたは書ける:

(?<![\d ]) ?(?=\d)

数字またはスペースの後になく、数字の前あるオプションのスペース(つまり、スペースまたは空の文字列)の位置に一致させるため。

(?<!...)これは否定的なルックアラウンドアサーションです。http://www.regular-expressions.info/lookaround.htmlを参照してください。)

于 2012-10-12T14:48:33.723 に答える
0

「\1」([^\d ])(?=\d)に置き換えることができます。

于 2012-10-12T14:48:23.107 に答える
0

c# はわかりませんが、置き換えてみてください:

([a-zA-Z])([0-9]+)

\1 \2

sed を使用した小さなテスト:

kent$  echo "AB-CD1"|sed -r 's/([a-zA-Z])([0-9]+)/\1 \2/g'
AB-CD 1
于 2012-10-12T14:48:46.047 に答える