我正在尝试以下方面Regex:
/^[aeiou]\..*[aeiou]$/
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我测试了"abcda"并且不匹配.
tri*_*cot 23
它应该只是:
/^[aeiou].*[aeiou]$/
Run Code Online (Sandbox Code Playgroud)
额外的\.你需要第二个字符是一个文字点,如:"a.hello".但由于您的测试用例"abcda"不包含这样的点,因此它不匹配.
请注意,如果您还想匹配大写元音,则可以添加i修饰符,如下所示:
/^[aeiou].*[aeiou]$/i
Run Code Online (Sandbox Code Playgroud)
如果你的意图只是匹配结尾元音与开头的元音相同的字符串,那么使用这样的反向引用\1:
/^([aeiou]).*\1$/i
Run Code Online (Sandbox Code Playgroud)
小智 11
正则表达式以元音开头和结尾。
^[aeiou].*[aeiou]$
Run Code Online (Sandbox Code Playgroud)
正则表达式以相同的元音开头和结尾。
^[a].*[a]$|^[e].*[e]$|^[i].*[i]$|^[o].*[o]$|^[u].*[u]$
Run Code Online (Sandbox Code Playgroud)
小智 9
\b[aeiou](\w*[aeiou])?\b
Run Code Online (Sandbox Code Playgroud)
\b代表词边界(在这种情况下,词的开头和结尾)。可选的分组()?是否有匹配单个元音的话(像葡萄牙人一样的话语言非常重要o,a而且e甚至是英文单词I)。
\b(?<vowel>[aeiou])(\w*\k<vowel>)?\b
Run Code Online (Sandbox Code Playgroud)
不要尝试替换<vowel>某些值。它只是用于捕获匹配的元音。
小智 7
/^(a|e|i|o|u).*\1$/
Run Code Online (Sandbox Code Playgroud)
这对我有用。
解释:
当您输入^字符时,表示您正在验证开始的字符串。括号是组分隔符。
因此,当放置时,(a|b|c)您是在告诉要测试的第一组将与a、b、 或匹配c。在示例中,它标记为 group (a|e|i|o|u)。这意味着字符串必须以这些字符中的任何一个开头。
该|字符充当布尔 OR 比较器。
该.表示,除了新行的任何字符将被评估。
在*表明我们期待0个或更多字符匹配。
将\1作为来自第一组的结果的参考,在这种情况下(a|e|i|o|u)。
$如果我们决定使用多行标志 ( /m) ,则该字符表示字符串的结尾或行的结尾。
希望这可以帮助。
小智 5
你可以试试这个。
var re = /^([a,e,i,o,u]).*\1$/;
Run Code Online (Sandbox Code Playgroud)
*\1 反向引用,$ 用于结束。