【发布时间】:2021-05-22 13:44:12
【问题描述】:
有没有办法在 Or 结构的一个项目之前包含一个空格,只有当它与其中一个匹配时?项目可以在字符串内重复。
正则表达式:
^([A-ZÁÂÉÊÍÓÔÚ][a-záãâéêíóõôúç]+)([(e|da|das|de|do|dos)]*[\s][A-ZÁÂÉÊÍÓÔÚ][a-záãâéêíóõôúç]+)+$
其中一项前的空格(必填):[(e|da|das|de|do|dos)]
我想要的结果:
Paulo César Oliveira(这是有效的)Antonio Carlos da Silva (必须在“da”之前有一个空格)João da Silva dos Santos e Souza (必须在“之前有一个空格” da"、"dos" 和 "e")
【问题讨论】:
-
类似regex101.com/r/LF4GC4/1 的东西?您能否澄清一下哪些字符串必须匹配,哪些必须不匹配?为什么?
-
@Wiktor Stribizew 我提交的正则表达式中有两个组:1)([A-ZÁÂÉÊÍÓÔÚ][a-záãâéêíóõôúç]+)和2)([(e|da|das|de|do |dos)]*[\s][A-ZÁÂÉÊÍÓÔÚ][a-záãâéêíóõôúç]+)+ 第一组是人名。第二组是名称的其余部分,在其他名称之前可以出现或不出现字符串“e”、“da”、“das”、“de”、“do”和“dos”,并且必须在前面有一个空格它(“e”、“da”、“das”、“de”、“do”和“dos”),就像我在最后展示的名字的例子。如果你还不明白,请告诉我. 谢谢。
-
我发布了答案,现在似乎很清楚了。
标签: regex regex-group