Regexp Replace(as3)-使用文本查找而不是替换
在使用regexp时遇到一些问题。加载到actionscript的XML文件将删除所有空格(自动修剪文本)。所以我想用一个单词替换所有空格,以便稍后在我自己的语法分析中修复它 下面是我想如何调整标记的示例Regexp Replace(as3)-使用文本查找而不是替换,regex,actionscript-3,whitespace,Regex,Actionscript 3,Whitespace,在使用regexp时遇到一些问题。加载到actionscript的XML文件将删除所有空格(自动修剪文本)。所以我想用一个单词替换所有空格,以便稍后在我自己的语法分析中修复它 下面是我想如何调整标记的示例 <w:t> </w:t> <w:t> Test</w:t> <w:t>Test </w:t> 试验 试验 这就是我想要的结果 <w:t>%SPACE%</w:t> <w:t>%SP
<w:t> </w:t>
<w:t> Test</w:t>
<w:t>Test </w:t>
试验
试验
这就是我想要的结果
<w:t>%SPACE%</w:t>
<w:t>%SPACE%Test</w:t>
<w:t>Test%SPACE%</w:t>
%SPACE%
%空间百分比测试
测试空间百分比%
我得到的最接近的结果是\s|\s
最大的问题是它改变了XML文件中的所有空格,从而破坏了所有内容。只会在w:t节点内更改,但不会破坏文本。做了一个不太好的变通方法。但问题是,当你在分秒必争地工作时 我运行了3次替换 var reg1 : RegExp = /<w:t>\s/gm; data = data.replace(reg1, "<w:t>%DEADSPACE%"); var reg2 :RegExp = /\s<\/w:t>/gm; data = data.replace(reg2, "%DEADSPACE%</w:t>"); var reg3 :RegExp = /<w:t>\s<\/w:t>/gm; data = data.replace(reg3, "<w:t>%DEADSPACE%</w:t>"); 变量reg1:RegExp=/\s/gm; data=data.replace(reg1,“%DEADSPACE%”); 变量reg2:RegExp=/\s/gm; data=data.replace(reg2,“%DEADSPACE%”); 变量reg3:RegExp=/\s/gm; data=data.replace(reg3,“%DEADSPACE%”);
RegExp,它有什么用。完全没有什么(唱歌);) 在ActionScript中使用标准类解析XML时,可以通过将属性设置为
false
来指定不忽略空白。默认设置为true
。这将确保XML文本节点中保留空白。然后你可以用它做任何你想做的事
XML.ignoreWhiteSpace = false
/* parse your XML here */
这样,您就不必使用正则表达式,并且可以使用标准的XML ActionScript解析 测试测试怎么样?这三个空格都应该被替换吗?如果使用得当,正则表达式有很多好处。只是需要练习。(我不是想表现出居高临下的样子,只是陈述了一个事实。我花了几个月的时间才真正掌握了它们!)
((?:<w:t>|\G(?!\A))(?:[^<\s]++|<(?!/w:t>))*+)\s
XML.ignoreWhiteSpace = false
/* parse your XML here */