[英]Ignoring case in strings with unitils ReflectionComparator
[英]Ignoring case for a whole pattern of strings
regexp不是我的強項,但我有一個4個字符串列表,我想檢查。 我創建了一個可讀(對我而言)的模式,因此可以輕松添加更多但我99%確定沒有。
列表是,我想匹配字符串,無論使用什么情況。
我正在使用的模式是
^(?!packstation|pack station|paketstation|paket station$).*$
我的問題是我無法忽視案件。 我嘗試在多個地方添加i標志,但它只是打破了模式識別,沒有任何東西通過。
不確定我是否需要創建一個更復雜的模式,或者它是否與Demandware的regexp有問題,它只接受一個模式。
你沒有說明語言。 如果您使用的是Java,Python,Ruby,Perl,.NET或PCRE(PHP),則可以使用內部修飾符(?i)
到您的模式中。 在你的情況下:
(?i)^(?!packstation|pack station|paketstation|paket station$).*$
那么你也可以縮短它:
(?i)^(?!pack ?station|paket ?station$).*$
對於這種情況,正則表達式將在上面列出的所有語言中具有相同的效果。
請注意,正則表達式將拒絕:
packstation
PackStation
PACKSTATION
pAcKstAtioN
大寫/小寫字母的所有組合都將被拒絕。
在Python中,內部修飾符是全局的,您只能為整個模式打開它(無論您聲明它的位置如何)。
在Java,Ruby,Perl,.NET或PCRE中,您可以通過在非捕獲組(?modifiers:pattern)
使用內部修飾符來限定內部修飾符的范圍。 您也可以從指定的位置打開它(?modifiers)
,並從指定的位置將其關閉(?-modifiers)
因為在這些語言中,改性劑的影響是局部的,以在聲明的位置。
通常,大多數語言都會為您提供指定主模式外標志的選項。 它可以支持它作為關閉分隔符到主模式之后的尾隨字符,或者它可以在函數調用中支持它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.