2

文字列パターンで囲まれた一連の数字をキャプチャし、その一連の数字に最大 4 桁の先行ゼロを埋め込む RegEx を探しています。同時に、文字列全体からすべてのスペースを削除する必要があります。例: "F12b" は "12" をキャプチャして "F0012b" を返す必要があります "AB 214/3" は "214" をキャプチャして "AB0214/3" を返す必要があります "G0124" は "0124" をキャプチャして元の文字列を変更せずに返す必要があります

ソース文字列は次の規則に従う必要があります: - [a-zA-Z] で開始する必要があります - 上記のパターンの後に任意の数のスペースを入れることができます - 数値シーケンスの後に別の文字列を続けることができます - 数値シーケンスは任意の数にすることができます桁数。4 桁未満の場合のみ、先行ゼロでシーケンスがパディングされます。それ以外の場合は変更されません。- 文字列内の最初の出現のみに関心がある

これを理解するのに十分な頻度でRegExを使用していないため、ここにこの質問を投稿していますが、RegExの完璧なケースであることはわかっています. どんな助けも大歓迎です.表現の説明は、私がそれを理解するのに確かに役立ちます.

4

1 に答える 1

2

それを照合して必要な情報を抽出するには、正規表現で問題ありません。これを使用できます。

^([a-zA-Z]+)\s*(\d+)(.*)

ここで regexrを参照してください。2 番目の例ではスペースが削除されていることがわかりますが、必要な情報はすべて に取り込まれています$1$2$3

正規表現は、パターンを照合するためのツールです。置換メソッド内でそのパターンを使用し、置換文字列を構築する方法は完全に言語に依存し、正規表現とは関係ありません。言語を知らなければ、この部分は答えられません。

于 2012-11-20T07:46:19.147 に答える