,
配列括弧内[]
の文字を別の文字、たとえば、に置き換える方法を知りたいのですが.
。私が持っている文字列式は次のとおりです。
属性["412324-ペンシルベニアI-95"、 "カテゴリ"]。値、属性["412324-ペンシルベニアI-95"、"カテゴリ"]。Code
期待される出力は次のとおりです。
属性["412324-ペンシルベニアI-95"。"Category"]。Value、Attributes ["412324--PENNDOTI-95"。"カテゴリ"]。コード
var regex = new Regex(@"(?<=\[[^\[\]]*),(?=[^\[\]]*\])");
return regex.Replace(<your sample string>, ".");
正規表現パターン内の左側には、,
ゼロ幅アサーションの後ろにポジティブなルックビハインドがあります。これは、コンマに至っていない、またはコンマに至っていない、0個以上の文字が存在する必要があることを意味し[
ます。[
]
[
コンマの後に、正の先読みゼロ幅アサーションが]
あります。これは、ゼロ以上の文字が存在する可能性があることを意味します]
。
ゼロ幅アサーションは、パターンが一致したテキストの前または後になければならないが、一致の一部ではないことを意味します。私たちは一致しているだけなので、,
私たちの交換はただ.
それが常にこのシェムにある場合、より高速になるのはString.Replace:です。
string sin = "Attributes["412324 - PENNDOT I-95", "Category"].Value, Attributes["412324 - PENNDOT I-95", "Category"].Code";
string sout = sin.Replace("\", \"","\". \"");
RegExでも同じことができますが、速度が遅くなり、入力文字列が構造を変更すると破損する可能性があります。