我正在尝试将xml
文件加载到字符串中,如下所示:
System.IO.StreamReader myFile = new System.IO.StreamReader(@"C:\Users\kuruvilla.philip\Desktop\Files\sample1.xml");
String myString = myFile.ReadToEnd();
但是我需要检查&
中加载的字符串中是否存在mystring
的非法变体。
例如:&P
(它总是需要&
没有空格)
所以我需要在上述情况下纠正它,并在每次出现时将其更新为&
。
如何做到这一点?
答案 0 :(得分:1)
使用正则表达式替换&
后跟chars &
Regex r = new Regex("&[^\\s]*");
r.Replace("&p bla & bla &ohnoes", "&")
输出:& bla & bla &
正则表达式寻找匹配
&
当然这是一个非常具有包容性的正则表达式,您可能需要调整它以忽略不需要替换的合法元素
答案 1 :(得分:0)
你试过吗
string.Contains();
简单的例子是
string someString = "StackOverflow&P";
bool isIllegal = someString.Contains("&P");
// Do something when isIllegal is true
然后只需使用string.Replace()
答案 2 :(得分:0)
我会避免使用str.Contains()
,因为它不会返回索引数组,这意味着您只会知道这些非法字符串是否存在,而不是它在字符串中的位置。
我实际上只是"暴力"这样:
**#Psuedo Code!#**
String myString = myFile.ReadToEnd();
for i=0, i<length(myString):
if myString[i] == '&':
if ....
//do your tests here. for example, check that myString[i+1, i+3] is indeed "amp".
else....
//the test failed, illegal expression found. replace the substring using str.Replace()