我的问题是这个正则表达式的逻辑是什么,所以它不能从单词中选择元音?
这是正则表达式:
^[AEIOUaeiou]+|[AEIOUaeiou]+$|[^AEIOUaeiou]
示例文字:
不得不为此感叹,并希望不可能的事情,直到她的父亲醒来,并使其变得愉快。他的精神需要支持。他是一个紧张的人,容易沮丧;喜欢他习惯的每一个身体,并且讨厌与他们分开;讨厌各种变化。婚姻,作为变革的起源,
正则表达式结果:
cld nt bt sgh vr t,nd wsh fr mpssbl thngs,tll hr fthr wk,nd md t ncssry t b> chrfl.Hs sprts rqrd spprt。 H ws nrvs mn,sly dprssd; fnd f vry bdy tht h> ws sd t,nd htng t prt thth; htng chng f vry knd。 Mtrmny,s rgn f chng
我的重点是“上述REGEX的哪一部分否定了名词的选择”
答案 0 :(得分:1)
你的正则表达式并不否定名词的选择,而只是根据元音进行匹配。
具体来说,正则表达式运行OR
(|
)条件,检查三个部分中的任何一个:
^[AEIOUaeiou]+
- 检查字符串是否以一个或多个元音开始 [AEIOUaeiou]+$
- 使用一个或多个元音检查字符串是否结束 [^AEIOUaeiou]
- 检查字符串是否包含不元音的内容基本上说,如果字符串在开头或结尾包含元音,它将返回匹配...如果字符串包含其他而不是元音(包括特殊字符)。
答案 1 :(得分:0)
你的正则表达式匹配:
^ Start of line
[AEIOUaeiou]+ 1-n times any of the characters in []
| OR
[AEIOUaeiou]+ 1-n times any on the characters in []
$ End of line
| OR
[^AEIOUaeiou] 1 occurence of not any of those in []
regexr将是:https://regexr.com/3lm0k
基本上,你为最后一部分获得了大量的匹配(385)而第一部分没有匹配,因为你的字符串以c
开头并以.
结束