我已经花了一些时间试图找出this website上的问题并且我最终发现了一个正如我要求做的那样的正则表达式
练习是:
Enter a regexp that matches all the items in the first column
(positive examples) but none of those in the second (negative examples).
When you press "submit", you will see what matched.
Positive Negative
pit pt
spot Pot
spate peat
slap two part
respite
我找到的答案是
^\w?.*p[a-z ?]t\w?.*$
我发现的是,所有积极的词语都有p_t
的形式。
我将其与p[a-z ?]t
相匹配,然后^\w?.*
匹配p
之前的所有字母和\w?.*$
以匹配t
之后的任何字母数字字符
我想知道的是有更好的方法来回答这个问题吗?
答案 0 :(得分:5)
这是一个更符合这些标准的简单:
.*p.t.*
这匹配任何包含p
后跟一个字符的字符序列,后跟t
。只要在区分大小写模式下运行,就不会匹配Pot
。
当然,如果你不需要匹配整个字符串(只是其中的一部分),这甚至更简单:
p.t
答案 1 :(得分:1)
这是更简单的一个!!
^.*p[a-z ?]t(\w+)?
答案 2 :(得分:0)
这是我能写的最短的正则表达式:
^.*p.t\w*