我有以下情况
情况1:
输入: X(P)~AK,X(MV)~AK
用...来代替: AP
输出: X(P)~AP,X(MV)~AP
案例2:
输入: X(PH)~B$,X(PL)~B$,X(MV)~AP
替换为:USD$
输出: X(PH)~USD$,X(PL)~USD$,X(MV)~USD$
可以看出,总是~<string>会被替换.
是否可以通过正则表达式实现相同的目标?
注意:〜除结构外,编译时不会知道任何内容.典型的结构
好像
X(<Variable Name>)~<Variable Name>
Run Code Online (Sandbox Code Playgroud)
我正在使用C#3.0
这个简单的正则表达式将会这样做:
~(\w*[A-Z$])
你可以在这里测试一下:
选择RegexHero上的替换选项卡.
输入~(\w*[A-Z$])正则表达式.
输入~AP替换字符串.
输入X(P)~AK,X(MV)~AK目标字符串.
你会得到这个作为输出:
X(P)~AP,X(MV)~AP
Run Code Online (Sandbox Code Playgroud)
在C#idiom中,你会有这样的事情:
class RegExReplace
{
static void Main()
{
string text = "X(P)~AK,X(MV)~AK";
Console.WriteLine("text=[" + text + "]");
string result = Regex.Replace(text, @"~(\w*[A-Z$])", "~AP");
// Prints: [X(P)~AP,X(MV)~AP]
Console.WriteLine("result=[" + result + "]");
text = "X(PH)~B$,X(PL)~B$,X(MV)~AP";
Console.WriteLine("text=[" + text + "]");
result = Regex.Replace(text, @"~(\w*[A-Z$])", "~USD$");
// Prints: [X(PH)~USD$,X(PL)~USD$,X(MV)~USD$]
Console.WriteLine("result=[" + result + "]");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8493 次 |
| 最近记录: |