正则表达式:在跟随/前置任何字符时匹配两个连续的下划线/连字符,但不是单独的

时间:2018-04-27 06:54:30

标签: regex

我是正则表达式的新手。有人可以指导我,如果我想在跟随/前面有一个或多个字符时匹配两个连续的下划线/连字符,但是如果下划线/连字符是单独的则不能。

示例:

  
      
  1. / - / dsdfsdf / dsfds
  2.   
  3. / __ / fsfsd /
  4.   
  5. / __一个/ vvfdvds / dsvsdv
  6.   
  7. /克 - / cdssd / dsdcsd
  8.   
  9. / sadsas __ / cdscd
  10.   
  11. / - sadas / CASCS /
  12.   

在这些字符串中,我不想匹配1和2,但应匹配3,4,5和6。

2 个答案:

答案 0 :(得分:0)

我在示例5中没有看到任何下划线。

但我认为这个表达方式可行

((-{2}|_{2})[[:alnum:]])|([[:alnum:]](-{2}|_{2}))

答案 1 :(得分:0)

试试Regex:

\B(?:--|__)\b|\b(?:--|__)\B

Demo

说明:

  • \ B: - | \ C | \ B(的?)(: - |吗)\乙
  • 第一选择\ B(?: - | __)\ b
    • \ B断言\ b不匹配的位置
    • 非捕获组(?: - | __)
    • 第一选择 -
    • - 匹配字符 - 字面意思(区分大小写)
    • 第二选择__
    • __匹配字符__字面(区分大小写)
    • \ b在字边界处断言位置(^ \ w | \ w $ | \ W \ w | \ w \ W)
  • 第二选择\ b(?: - | __)\ B.
    • \ b在字边界处断言位置(^ \ w | \ w $ | \ W \ w | \ w \ W)
    • 非捕获组(?: - | __)
    • 第一选择 -
    • - 匹配字符 - 字面意思(区分大小写)
    • 第二选择__
    • __匹配字符__字面(区分大小写)
    • \ B断言\ b不匹配的位置