与正则表达式匹配的模式

时间:2011-10-14 13:28:07

标签: regex notepad++

我是正则表达式的新手并试图通过解决小问题来理解它。所以我在这里遇到了一个我无法解决的问题(警告:它可能非常愚蠢)。您的意见将帮助我理解这个概念。

我想编写一个正则表达式,它与list1中的所有项目相匹配,但不包含list2

中的所有项目

list1的

   pit
   spot
   spate
   slap two
   respite

list2中

   pt
   Pot
   peat
   part

我在想“给我所有以p|s|r开头并以it|ot|e|o结尾的项目 所以我写了^[p|s|r].*[it|ot|e|o]$,最终导致了不良后果。

提前感谢您的意见。

4 个答案:

答案 0 :(得分:2)

在记事本中,您无法执行or操作(取自Notepad++: A guide to using regular expressions and extended search mode并在我的Notepad ++ 5.9.3上进行测试)

这适用于其他“标准”正则表达式: - )

^[psr].*(it|ot|e|o)$

试试这里。 http://gskinner.com/RegExr/?2uudn

您在做什么是使用[]而不是分组()。它相当于:[itoe|]|是一个“标准”字符而不是or),并且[]中的所有内容都在或:-) { {1}}表示[ab]a

答案 1 :(得分:1)

/(pit|spot|spate|slap two|respite)/.test('Pot')

这匹配列表1中的单词,而列表2中的单词

答案 2 :(得分:0)

我觉得我必须遗漏一些东西。

^(pit|spot|spate|slap two|respite)$

答案 3 :(得分:0)

这完全取决于您如何对列表之间的差异进行分类:

/p[ioa\s]t/