正規表現を使用して変換するにはどうすればよいですか
11111aA$xx1111xxdj$%%`
に
aA$xx1111xxdj$%%
つまり、つまり、 の FIRST グループを削除 (または一致) させたいと考えてい1
ます。
正規表現を使用して変換するにはどうすればよいですか
11111aA$xx1111xxdj$%%`
に
aA$xx1111xxdj$%%
つまり、つまり、 の FIRST グループを削除 (または一致) させたいと考えてい1
ます。
言語によっては、文字列を正規表現に置き換える方法が必要です。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 を追加すると、一致は入力の末尾にある文字列のみを受け入れます。
これが最初の場合は、これを使用できます。
^[1]*
置き換える限り、それは言語に依存します。PowerShell では、次のようにします。
[regex]::Replace("11111aA$xx1111xxdj$%%","^[1]*","")
これは以下を返します:
aA$xx1111xxdj$%%
よくわかりませんが、これを試すことができます
[^1](\w*\d*\W)*
- "1"(n) 個のシンボルを除くすべてを 1 つのグループとして一致させます
文字列の先頭にある連続する「1」のみを置き換えたい場合は、次を空の文字列に置き換えます。
^1+
連続する "1" が必ずしも文字列の最初の文字ではない場合 (ただし、1 つのグループのみを置き換えたい場合)、次を最初のキャプチャ グループの内容に置き換えます (通常は\1
または$1
)。
1+(.*)
これは、「すべて置換」機能を使用できる場合にのみ必要であることに注意してください。ただし、ほとんどの正規表現の実装では、一致するインスタンスを 1 つだけ置換する方法も提供されています。この場合1+
、空の文字列に置換するだけで済みます。
JavaScriptで
var str = '11111aA$xx1111xxdj$%%';
var patt = /^1+/g;
str = str.replace(patt,"");