【问题标题】:Regex to escape special character and match word in a string [duplicate]正则表达式转义特殊字符并匹配字符串中的单词[重复]
【发布时间】:2018-04-17 08:37:54
【问题描述】:

我有一个包含 i++ 和 ++i 的段落:

para = "This is what i++ is do ++i and in i I dim ++ +"

我想找出所有出现的 i++ 和 ++i。因为我是这方面的初学者,所以这就是我在regex101.com 写的内容

[i+]

这很好用,但正如您所看到的,它还为我提供了字符串中所有位置的所有 I i + ++,所以我添加了这个 \b[i+]\b 但它没有选择 i++ 附加的 + 符号。此外,它选择字符串中的单个 i。这意味着它不会将 i++ 或 ++i 视为单个字符串。

如何更改我的正则表达式以在字符串中选择 i++ 或 ++i

【问题讨论】:

  • 语言或工具是什么?只需\+\+i|i\+\+
  • 好的。我不是在寻找任何特定的语言。但是这个\+\+i|i\+\+ 起作用了

标签: regex


【解决方案1】:

你需要避开你的+ 标志。

您可以使用正则表达式i\+\+|\+\+i

  • i\+\+ 匹配 i++ 字面意思

  • \+\+i 匹配 ++i 字面意思

Demo.

【讨论】:

  • OP 不需要在他/她自己的正则表达式中转义+
  • @revo + 本身是否需要转义取决于使用的正则表达式语法。 OP 没有指定,但使用的是 regex101.com,在这种情况下,+ 是一个元字符,并且确实需要将+ 转义才能按字面意思理解。
  • @hvd 请告诉我哪种正则表达式将+ 视为字符类中的特殊字符。
  • \+\+i|i\+\+i\+\+|\+\+i 都有效。你能告诉我有什么区别吗
  • @revo 这有关系吗? OP 需要做的第一件事就是摆脱角色类。
猜你喜欢
  • 2014-12-13
  • 2016-12-08
  • 1970-01-01
  • 2020-12-28
  • 1970-01-01
  • 2011-08-21
  • 2021-11-03
  • 2013-02-25
  • 1970-01-01
相关资源
最近更新 更多