2014-01-30 24 views
0

这个表达式存在,我还是很新的破译正则表达式。 我知道\ t \ n \ r参考标签,换行和回车 我发现^里面的[]意思是“不是” 但我错过了这个特殊的正则表达式的错综复杂。我不知道如果我解释XSD文件</p> <pre><code>[^~|tnr]+(~[^~|tnr]+)?(|[^~|tnr]+(~[^~|tnr]+)?)* </code></pre> <p>这里面的正则表达式正确

它可以像这样被打破吗?

"[^~|\t\n\r] 
+ 
(~[^~|\t\n\r]+) 
? 
(\|[^~|\t\n\r] 
+ 
(~[^~|\t\n\r]+)?)*" 

做的第一件是指“不?|或制表符或新行或回车

其他部分看起来几乎与添加或改变〜同和\

任何?帮助感激,谢谢

+0

是的,本质上是:'firstmatch〜secondoptionalmatch'可能与'|'之间重复('\ |'是一个字面''')。所以'aa〜bb | cc | dd〜ff | gg'会比较匹配。 – Wrikken

+0

我发现http://www.regular-expressions.info/是有帮助的。 – iamnotmaynard

回答

1

您对\t\n\r是正确的选项卡和换行符。

所以你有一个重复的字符类[^~|\t\n\r]+。这表示“一个或更多个字符,其可以比~其他任何东西,|\t\n\r

图案的其中之一开始。

然后它有另外一个,与~字符前缀,这是可选的(在?使得可选的支架使可选位既包括~和字符类)。

那么您有另一组括号与*后,这我ans“重复零次或多次。这组括号包含你的角色类的第三个实例,这次是|,然后是另一个可选的角色类,前面有~

最后的括号和*这个块基本上是整个其余模式的重复。它归结为一个由|字符分隔的字符串的重复模式,其中每个字符都可选地通过~分隔符来细分为两个字符。

相关问题