1

正規表現を使用して変換するにはどうすればよいですか

11111aA$xx1111xxdj$%%`

aA$xx1111xxdj$%%

つまり、つまり、 の FIRST グループを削除 (または一致) させたいと考えてい1ます。

4

5 に答える 5

2

言語によっては、文字列を正規表現に置き換える方法が必要です。Java では、次のように実行できます。

String s = "11111aA$xx1111xxdj$%%";
String res = s.replaceAll("^1+", "");

^アンカー」は、入力の先頭が一致する必要があることを示します。は1+、1 つまたは複数の1文字のシーケンスを意味します。

これは、この実行中のプログラムを含む ideone へのリンクです。

C# での同じプログラム:

var rx = new Regex("^1+");
var s = "11111aA$xx1111xxdj$%%";
var res = rx.Replace(s, "");
Console.WriteLine(res);

( ideoneへのリンク)

一般に、文字列の先頭だけを一致させたい場合は、^式にプレフィックスを追加します。同様に$、末尾に a を追加すると、一致は入力の末尾にある文字列のみを受け入れます。

于 2012-10-12T20:44:20.663 に答える
1

これが最初の場合は、これを使用できます。

^[1]*

置き換える限り、それは言語に依存します。PowerShell では、次のようにします。

[regex]::Replace("11111aA$xx1111xxdj$%%","^[1]*","")

これは以下を返します:

aA$xx1111xxdj$%%
于 2012-10-12T20:45:31.670 に答える
0

よくわかりませんが、これを試すことができます [^1](\w*\d*\W)*- "1"(n) 個のシンボルを除くすべてを 1 つのグループとして一致させます

于 2012-10-12T20:58:17.823 に答える
0

文字列の先頭にある連続する「1」のみを置き換えたい場合は、次を空の文字列に置き換えます。

^1+

連続する "1" が必ずしも文字列の最初の文字ではない場合 (ただし、1 つのグループのみを置き換えたい場合)、次を最初のキャプチャ グループの内容に置き換えます (通常は\1または$1)。

1+(.*)

これは、「すべて置換」機能を使用できる場合にのみ必要であることに注意してください。ただし、ほとんどの正規表現の実装では、一致するインスタンスを 1 つだけ置換する方法も提供されています。この場合1+、空の文字列に置換するだけで済みます。

于 2012-10-12T20:45:17.810 に答える
0

JavaScriptで

    var str  = '11111aA$xx1111xxdj$%%';
    var patt = /^1+/g;
    str      =  str.replace(patt,"");
于 2013-02-15T11:36:04.880 に答える