我有幾個不同的字符串組合,我試圖以這種格式返回結果:JavaScript的正則表達式 - 返回值,除非後面或前面有
[0-9]{1,3}GB
,除非它是由SD
在串的地方之前,或之後通過RAM
字符串中的某處。
因此:
8 GB
應返回:8 GB
8 GB RAM
應返回:
SD Card 8 GB
應返回:
microSD, up to 32 GB
應返回:
16 GB
應該返回:16 GB
這(([0-9]{1,3}GB)(?!\s+RAM)(?!SD))
不適用於基於JavaScript的正則表達式。
任何想法從哪裏開始?
我不確定正則表達式能夠對任意長度的字符串進行否定匹配。國際海事組織你應該做第一輪過濾所有符合'SD。* \ d {1,3}?GB'和'\ d {1,3}?GB。* RAM'的字符串,然後運行'(\ d {1,3}?GB)'在結果的字符串列表上。 – Siguza
您是否期望輸入字符串包含單個或多個匹配?請參閱https://regex101.com/r/qO8xN1/2 –
這些字符串均不匹配[[0-9] {1,3} GB')。 – melpomene