正则表达式不是以点开头或以点结尾

时间:2014-02-04 16:59:57

标签: python regex

我需要一个不以dot开头或以[-_。]

结尾的正则表达式

以下正则表达式有效但第一个条件失败,即;不是以点开头。

^[A-Za-z0-9][^.]*[^-_.][A-Za-z0-9]$

例如:test.com应该是有效的字符串,但它失败了..

2 个答案:

答案 0 :(得分:7)

从您的previous question,您应该可以使用:

^[^.].*[^-_.]$

但是如果你想能够匹配1个字符的字符串,你将需要负面的前瞻:

^(?![.])(?!.*[-_.]$).+

如果您想匹配空字符串,只需使用*代替+

^(?![.])(?!.*[-_.]$).*

答案 1 :(得分:0)

使用否定前瞻来断言您对字符串的要求:

^(?!^\.)(?!.*[-_.]$)[a-zA-Z0-9]+$
  • 第一个字符不是“。”
  • 最后一个字符不是“ - ”,“_”或“。”
  • 至少一个字符长度