cari

Rumah  >  Soal Jawab  >  teks badan

正则表达式:四个字母,然后字母中至少有一位是a e i o u,这个怎么写呢?

这个有点难度的,/[aeiou]{1,4}/ 这样写有点问题的

高洛峰高洛峰2956 hari yang lalu878

membalas semua(4)saya akan balas

  • 欧阳克

    欧阳克2016-11-10 11:20:45

    grep -P '^(?=.*[aeiou])[a-zA-Z]{4}$'

    (?=.*[aeiou])  表示存在一个位置,什么位置呢?这个位置之后必会出现aeiou其中之一。由于这个位置在^之后,简单理解为:开头插入了一个预言,这个预言是:^之后必会至少出现aeiou其中之一。

    [a-zA-Z]{4} 没什么好说的

    于是整个 '^(?=.*[aeiou])[a-zA-Z]{4}$' 翻译过来就是:
    一开头(^)我预言之后必会至少出现aeiou其中之一,4个字母后结束($)


    balas
    0
  • 三叔

    三叔2016-11-10 11:20:27

    ([aeiou]...)|(.[aeiou]..)|(..[aeiou].)|(...[aeiou])

    balas
    0
  • 欧阳克

    欧阳克2016-11-10 11:20:03

    /^(?=^[a-zA-Z]{0,3}[aeiou])[a-zA-Z]{4}$/

    balas
    0
  • 三叔

    三叔2016-11-10 11:19:57

    /^(?=.{4}$)([a-z]*[aeiou]{1,4}[a-z]*)$/

    : )

    补充,这个版本原理是一样的,更简洁一些:

    /^(?=[a-z]{4}$)(.*[aeiou]{1,4}.*)$/

    下面这个是MariaDB,可惜在MySQL上面行不通

    bVFkzX.png

    在MySQL里面拆成两个执行:

    bVFkzX.png

    balas
    0
  • Batalbalas