我有一個字符串列表:C++ 11的正則表達式前瞻排除字
- ReferencePrice
- ReferenceCurrentPrice
- CostPrice
- AverageCostPrice ...
我想過濾列出所有字符串:
- ,載 '價格',
- 但不包含 'CostPrice'
我的正則表達式是 '(?!成本)價格',但能匹配第三根弦 'CostPrice',爲什麼呢?什麼是正確的正則表達式?
經過一番調查,我知道什麼是 '超前' 的意思。這意味着看起來正確,所以同樣向後看意味着看起來離開。
正確的正則表達式應該是負回顧後發正則表達式:
(?<!Cost)Price
試試:https://regex101.com/r/m3238r/1
不幸的是,C++ 11不支持回顧後。 Boost正則表達式。 http://www.boost.org/doc/libs/1_50_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
你需要一個「看後面」,而不是C++ 11顯然不支持。 – ClasG
@ClasG是否可以爲我的情況使用c + + 11正則表達式? – user1633272