簡體   English   中英

正則表達式:僅一個下划線實例

[英]RegEx: Only one instance of underscore

我正在尋找將接受以下內容的正則表達式模式:

[foo_bar]{foo_bar}

哪里:

  • [ ]{ }充當包裝器
  • foobar可以是除_以外的任何東西,重復1至n次
  • _應該只出現一次,並且應該在foobar之間

    匹配樣本:

  • [1Ab_23c]
  • {abcDefGhjk_Z}
  • {1_abcDefGhjk}

    樣品不匹配:

  • {1Ab_23c]
  • {_1Abde_fg4567_2_}
  • {1Abde_fg4567_2}
  • 1Ab_23c

    這就是我現在所擁有的,但是我仍然缺少唯一的 _部分。

     ^{.+_.+}|\\[.+_.+]$ 

    我猜一個(?!_).+應該以某種方式存在,但我無法將它們拼湊在一起。

  • 您可以使用補充字符集 - [^_] (除下划線以外的所有字符 ):

     const pattern = /\\[[^_]+_[^_]+\\]|\\{[^_]+_[^_]+\\}/; // matches console.log(pattern.test('[1Ab_23c]')); console.log(pattern.test('{1Abdefg4567_2}')); console.log(pattern.test('{1Ab_23c}')); // mismatches console.log(pattern.test('{1Ab_23c]')); console.log(pattern.test('{_1Abde_fg4567_2_}')); console.log(pattern.test('{1Abde_fg4567_2}')); console.log(pattern.test('1Ab_23c')); 

    暫無
    暫無

    聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM