需要帮助来创建一个正则表达式,它可以在以下条件下使用反斜杠。
如果字符串包含反斜杠,而不是后面连续地出现另一个反斜杠或管道,则应该返回不带反斜杠的字符串。
2>if字符串包含一个反斜杠和一个连续的管道,我不应该删除反斜杠。
3>if,它包含反斜杠,后面是连续反斜杠(\\),而不是我不应该删除的反斜杠。
scala> val str = """Sports\s"""
str: String = Sports\s
scala> str.replaceAll("""\\""", "")
res70: String = Sportss
scala> val str = """Sports\\s"""
str: String = Sports\\s
scala> str.replaceAll("""\\""", "")
res71: String = Sportss
scala> val str = """Sports\\|s"""
str: String = Sports\\|s
scala> str.replaceAll("""\\""", "")
res74: String = Sports|s在上面的测试中,如果字符串包含一个反斜杠或反斜杠与管道的组合,则反空格将被完全移除,我应该修改什么来处理这些情况?
根据我先前的问题,提供了工作上的答案,但这是另一个解决办法不起作用的情况。
scala> val str = "Spo\\rts\\s"
str: String = Spo\rts\s
scala> str.replaceFirst("""^([^\\|]*)\\([^\\|]*)$""", "$1$2")
res102: String = Spo\rts\s预期的输出应该没有\
发布于 2018-07-02 09:15:16
你可以用
s.replaceAll("""(\\+[\\|])|\\""", "$1")模式细节
(\\+[\\|]) -捕获组1:\\+ -1或更多\字符[\\|] -a \或| char
| -或\\ -反斜杠$1替换模式将在捕获组#1中插入值。
val p = """(\\+[\\|])|\\"""
println("""Sports\s""".replaceAll(p, "$1")) // => Sportss
println("""Sports\|s""".replaceAll(p, "$1")) // => Sports\|s
println("""Sports\\s""".replaceAll(p, "$1")) // => Sports\\s
println("""Sports|\\s""".replaceAll(p, "$1"))// => Sports|\\shttps://stackoverflow.com/questions/51132342
复制相似问题