为什么这个正则表达式
(?<!\S)[^\s]*[aeiou][^\s]*(?<=\d)(?!\S)
Run Code Online (Sandbox Code Playgroud)
匹配test123但不匹配123test
我想匹配一个必须有元音和数字的单词.由于我是新手,我完全不了解所有方法.也许那会引起问题.
我想匹配一个必须有元音和数字的单词
(?<!\S)\S*(?:[aeiou]\S*\d|\d\S*[aeiou])\S*(?!\S)
Run Code Online (Sandbox Code Playgroud)
这部分在你的正则表达式中,
(?<=\d)(?!\S)
Run Code Online (Sandbox Code Playgroud)
将查找要出现的数字,该数字不得跟随非空格字符.在此test123,因为最后出现的3满足这个条件,其中3后面没有非空格字符.因此,您的正则表达式匹配test123并且无法匹配,123test因为此输入中存在的所有数字后跟非空格字符.而且你的正则表达式声称在数字之前必须存在一个元音.这也是一个原因.