簡體   English   中英

用於檢查字符串是否不應包含某些單詞的正則表達式,但如果這些單詞前面有“to”或“for”,則可以

[英]Regex for checking if a string should not contain certain words but those words are ok if they have a 'to' or 'for' preceeding the words

我有一個用例,對於給定的字符串,我需要檢查該字符串是否不包含“ com ”、“ dot ”等詞,但如果它們是這樣的,則可以使用這些詞 - ' for com ' ' com ' '到 dot '。 正在努力為此編寫 regex/javascript 函數。

例如:

'maincom', 'maindot'

根據正則表達式模式不應該被接受

'main for com', 'main for dot', 'main to dot', 'main to com'

根據正則表達式模式應該是可以接受的

根據下面 Jan 的評論回答-

^(?!.*\b(?:for com|to com|for dot|to dot)\b).+

你可以用

^(?!.*\b(?:com|dot)\b).+

在 regex101.com 上查看演示

我想到的不是單個正則表達式,而是一個簡短的算法:將字符串拆分為“單詞”(由一個或多個非字母字符分隔),生成一組值。 查看有問題的單詞是否出現在數組中,如果是,請查看每種情況下的前一個單詞,看看它是否是“to”。

雖然它很可能是可能設計出一個正則表達式,我認為這將是難以調試,並從那里來維護它。 (而且,讓我們面對現實吧......“他們會改變主意並想要一些稍微不同的東西。”)我敢說我建議的方法將“足夠快”並且更易於維護。

暫無
暫無

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

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