首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除字符串中反斜杠的出现,后面没有另一个反斜杠或管道。

删除字符串中反斜杠的出现,后面没有另一个反斜杠或管道。
EN

Stack Overflow用户
提问于 2018-07-02 08:54:00
回答 1查看 51关注 0票数 1

需要帮助来创建一个正则表达式,它可以在以下条件下使用反斜杠。

如果字符串包含反斜杠,而不是后面连续地出现另一个反斜杠或管道,则应该返回不带反斜杠的字符串。

2>if字符串包含一个反斜杠和一个连续的管道,我不应该删除反斜杠。

3>if,它包含反斜杠,后面是连续反斜杠(\\),而不是我不应该删除的反斜杠。

代码语言:javascript
复制
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

在上面的测试中,如果字符串包含一个反斜杠或反斜杠与管道的组合,则反空格将被完全移除,我应该修改什么来处理这些情况?

根据我先前的问题,提供了工作上的答案,但这是另一个解决办法不起作用的情况。

代码语言:javascript
复制
scala> val str = "Spo\\rts\\s"
str: String = Spo\rts\s

scala> str.replaceFirst("""^([^\\|]*)\\([^\\|]*)$""", "$1$2")
res102: String = Spo\rts\s

预期的输出应该没有\

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-02 09:15:16

你可以用

代码语言:javascript
复制
s.replaceAll("""(\\+[\\|])|\\""", "$1")

regex在线演示

模式细节

  • (\\+[\\|]) -捕获组1:
    • \\+ -1或更多\字符
    • [\\|] -a \| char

  • | -或
  • \\ -反斜杠

$1替换模式将在捕获组#1中插入值。

Scala演示

代码语言:javascript
复制
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|\\s
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51132342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档