我已经从Matlab生成了一个.xml文件,我无法在浏览器中打开它。原因是当创建.xml文件时,它有一些“小于”或“大于”运算符。例如,一个生成的.xml文件是:
<test Name='blabla' User='User1' Value='<2'>
现在,如何更改此符号'&lt;' “小于”但仅在2号位置之前的位置?我尝试使用正则表达式来查找索引:
splitStr = regexp(xmlString,'<\d')
有了这个,我只得到索引,但我不知道如何替换它。使用regexprep替换每个'&lt;'在字符串中,包括字符串开头的那个,然后xml将无法在浏览器中打开。
或者,如果有其他方式?
答案 0 :(得分:2)
假设您有x = 'a<bc'
并希望将第二个字符替换为'小于'
你可以这样做:
[x(1:1) ' less than ' x(3:end)]
它会给出
a less than bc
从这里开始,创建一般解决方案应该很简单。
如果您有索引并且想要替换字符很简单,那么我们假设索引是2:
x = 'abcd'
x(2) = 'z'
将产生
'azcd'
答案 1 :(得分:0)
不了解Regex的MatLab语法,但有类似
的内容(?<=['"])([^'"]*?)<([^'"]*?)(?=['"])
https://regex101.com/r/oK9wX2/2
您可以抓住每个<
内部引号并将其替换为<
- 同样适用于>
和>
。
答案 2 :(得分:0)
使用字符串替换可以轻松实现您所要求的确切内容:
s = "<test Name='blabla' User='User1' Value='<2'>"
strrep(s,'<2','less than 2')
对于更复杂的模式,您当然可以使用regexrep
。
但是,你提到:
我已经从Matlab生成了一个.xml文件
实际上,<
不应该是xml,所以我想你已经生成了一个类似于xml的文件。从这里可以很容易地看出,真正的解决方案是在文件创建过程中处理特殊字符!