我是正则表达式的新手并试图通过解决小问题来理解它。所以我在这里遇到了一个我无法解决的问题(警告:它可能非常愚蠢)。您的意见将帮助我理解这个概念。
我想编写一个正则表达式,它与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]$
,最终导致了不良后果。
提前感谢您的意见。
答案 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/