正则表达式在几个特殊字符中找到一个字符串

时间:2017-03-05 12:09:20

标签: regex

嘿伙计们我想在字符串中找到一个模式,让我们说这是我的字符串

Hello World :this is what i am trying to detect: 

我正在寻找匹配

之间的任何内容的正则表达式
:"STRING":
我搜索了一下,发现了一些结果,但似乎没有任何效果。我成功地匹配了:test:但不止一个字而且正在打破

这是我得到的最佳答案

^[:]\\w+|(?<=\\s)[@#]\\w+

3 个答案:

答案 0 :(得分:3)

您可以使用:

:(.*?):

Demo

说明:

  1. :寻找第一个:
  2. .*?懒洋洋地匹配所有内容,直到下一个:
  3. :结束匹配
  4.   

    更新:

    如果您想要超越:并寻找以下组中的任何特殊内容,那么您可以尝试:

    [:#@]([^:#@]*?)[:#@]
    

    Demo 2

答案 1 :(得分:2)

字符X之间匹配的技巧是匹配消息正文的“除X之外的所有内容”:

:[^:]*:

表达式的字面意思是:

  • 冒号:
  • 后跟冒号[^:]*
  • 以外的零个或多个字符
  • 另一个冒号:

答案 2 :(得分:0)

([:][A-Za-z0-9]+[:])

您可以在此范围内添加更多字符或直接使用\ s