我一直在关注加密和长话短说,我需要从字符串中删除xml标记。
每个字符串都需要一个全局规则来替换字符串,我已经为此查看了正则表达式,但它没有意义。
以下是一些例子
<BitStrength>384</BitStrength>
<BitStrength>1024</BitStrength>
<BitStrength>12300</BitStrength>
我需要替换整个字符串和里面的数字,什么也没有。 我尝试过这样的事情:
string.replace("<BitStrength>12300</BitStrength>","");
但问题是数字的长度和字符,并且找不到匹配项。 有没有人有解决方案?也许正则表达式是要走的路?
PS。优选C#中的解决方案。
编辑:我正在寻找一种解决方案,不仅可以替代整个字符串,还可以替换字符串。
<BitStrength>4633</BitStrength>
<BitStrength>336</BitStrength>
!!SomeConstantData!!5437!!EndConstant!!
I would like 2 eggs today.
I would like 17 eggs today.
I would like 258367 eggs today.
现在,如果我放string.replace("I would like ","").replace(" eggs today.")
,我将留下号码258367,因为我没有在我的陈述中说明这一点。我正在寻找删除此数据的解决方案。它可以是任何值。
在我的特定示例中,我希望替换<BitStrength>384</BitStrength>
中的<BitStrength>384</BitStrength><RSAKeyValue><Modulus>code</Modulus><Exponent>code</Exponent></RSAKeyValue>
我面临的问题是bitstrength标签之间的数字可以是386到16384之间的任何数字,我需要删除整个bitstrength字符串。
答案 0 :(得分:1)
您没有显示您尝试过的内容,我想知道失败是因为您没有使用之前的@
将模式字符串作为文字字符串吗?
此示例有效:
Regex.Replace(@"Blah<BitStrength>12300</BitStrength>Blah",
@"(\<BitStrength\>12300\</BitStrength\>)",
string.Empty)
并返回
BlahBlah
如果实际数字无关紧要,请使用以下模式:
(\<BitStrength\>\d+\</BitStrength\>)
答案 1 :(得分:1)
这有效:
var source = string.Join(Environment.NewLine,
"<BitStrength>384</BitStrength>",
"<BitStrength>1024</BitStrength>",
"<BitStrength>12300</BitStrength>");
var result = source.Replace("<BitStrength>12300</BitStrength>", string.Empty);
答案 2 :(得分:1)
Original String: <BitStrength>384</BitStrength>
Replacement String:
返回
<receiver android:enabled="true" android:name=".Broadcast"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>