Regexp Replace(as3)-使用文本查找而不是替换

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

在使用regexp时遇到一些问题。加载到actionscript的XML文件将删除所有空格(自动修剪文本)。所以我想用一个单词替换所有空格,以便稍后在我自己的语法分析中修复它

下面是我想如何调整标记的示例

<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 */