5
A
回答
5
这实际上是在不同的上下文2名逃逸,由于这样的事实,所述参数是表示为一个串的正则表达式。
[
必须转义,否则它在正则表达式中会有特殊含义。正则表达式的转义将使其成为\[
。但是,\
必须转义,因为它在字符串中具有特殊含义(用于转义和用数值表示字符)。
它可能会更糟糕,因为\
字符用于两种情况下的转义。如果要分割\
字符,则必须转义该字符(\\
)以获得正则表达式的用法,但是您必须有两个\
字符,这两个字符必须在字符串上下文中转义。在原始字符串要拆分的使用也需要转义如果你正在写它作为一个恒定的,所以类似的分裂会是什么样子:
"hello\\world".split("\\\\")
1
不同版本的Groovy得到不同的结果。
对于Groovy的1.1-β-1和起,
assert "hello[world".split("\\[") == ["hello", "world"]
断言行,但Groovy的1.0和之前给出断言错误。
assert "hello[world".split(/\[/) == ["hello", "world"]
断言行从1.1-β-1起的所有版本中,Groovy的1.0-JSR-01〜1.0给出了一个断言错误,而Groovy的1.0-β-10和前给出了词汇错误。
"hello[world".split("\\[").each{println it}
从1.0-β-5和β-3的Groovy的所有版本,打印
hello
world
但1.0-β-4打印
[.]
[.]
hello
world
相关问题
- 1. 为什么我们需要添加括号来评估JSON?
- 2. 为什么“typeof”不需要括号?
- 3. 为什么我不需要括号for循环和if语句
- 4. 为什么我的serialVersionUID后需要一个大括号?
- 5. 为什么我的函数需要括号?
- 6. C++构造函数重载 - 为什么说我需要括号?
- 7. <?php echo $ _POST [“name”]; ?>为什么我们需要方括号这里?
- 8. 为什么我们需要Buffer.isBuffer方法?
- 9. 为什么我们需要addRequestHeader方法?
- 10. 为什么我需要添加空showMessageDialog
- 11. Escape大括号进展abl
- 12. 为什么红宝石在这里需要括号?
- 13. 为什么需要两个括号在c/C++中使用宏?
- 14. 为什么JavaScript的eval需要括号来评估JSON数据?
- 15. 为什么函数组合需要括号?
- 16. JavaScript即时函数调用 - 为什么函数需要括号?
- 17. 为什么我需要MEX?
- 18. 为什么我需要OleDbCommand.Prepare()?
- 19. 为什么在整数周围需要括号来调用它的方法?
- 20. 为什么只有一个语句的方法需要大括号?
- 21. 为什么ASP.net使用方括号
- 22. 为什么我需要一个需要实例的方法?
- 23. 为什么我需要在ES6中用数字括号包装一些导入?
- 24. 为什么我们需要互斥信号和信号量?
- 25. 号码:COMMANDBUTTON做什么,我需要
- 26. 为什么我们需要将布尔值传递给方法
- 27. 为什么Scala需要符号?
- 28. 为什么xcopy需要多个引号?
- 29. 为什么在这里需要分号?
- 30. C++为什么括号?
除了@Don拉吉答案,如果你使用一个常规的正则表达式,你可以使用'/ \ [/'语法来缩短双重转义。 – matcauthon 2012-07-08 14:23:45