簡體   English   中英

如何轉義整個字符序列?

[英]how to escape a whole sequence of characters?

我正在使用以下代碼在MFC C ++中“執行”正則表達式

std::wregex rx(regularExpression,nFlags);
std::wcmatch res;
std::regex_search(inputString, res, rx);

這用在對話框中,用戶在其中輸入regularExpression ,然后在我的inputString搜索它。

用戶可能不希望使用正則表達式來查找他想要的內容,在這種情況下,我提供了一個選項“整個單詞”,該選項將匹配regularExpression變量中的任何字符。

“整個單詞”是通過在<>添加regularExpression來完成的,是否還有其他特殊字符會使regex_search方法忽略每個regex特殊字符,按字面意義對待它們,並用<>括起來?

那么如何在不必轉義每個特殊字符的情況下轉義整個字符串呢?

C ++正則表達式不支持任何這樣做的方法。 如果要將用戶的字符串傳遞給正則表達式匹配器,則必須轉義每個特殊字符。

在某些正則表達式引擎中,有多種模式,其中一種模式默認情況下會特殊處理特殊字符,轉義它們會使字符按字面方式執行;另一種模式,字符缺省情況下會按字面方式運行,並且必須轉義才能使其具有特殊行為。 但是C ++正則表達式不支持該功能。

暫無
暫無

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

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