[英]RegEx: Only one instance of underscore
我正在尋找將接受以下內容的正則表達式模式:
[foo_bar]
或{foo_bar}
哪里:
[
]
或{
}
充當包裝器 foo
和bar
可以是除_
以外的任何東西,重復1至n次 _
應該只出現一次,並且應該在foo
和bar
之間 匹配樣本:
[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.