为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式以字符集开始和结束,但中间有不同的字符集

正则表达式以字符集开始和结束,但中间有不同的字符集

C#
MM们 2022-10-15 15:14:48
我正在尝试创建一个正则表达式:必须是一组字符中的第一个字符 ( FIRST_SET)可以选择在不同的字符集中包含后续字符 ( SECOND_SET)但如果它有 2 个或更多字符,最后一个字符必须在FIRST_SET总长度不能超过MAX_CHARS字符例子FIRST_SET= ac 或 eg(所以 d 被排除在外)SECOND_SET= 股份公司MAX_CHARS= 10这是我到目前为止所拥有的:^[a-c|e-g][a-g]{0,8}[a-c|e-g]{0,1}$这似乎有效,除非d是最后一个字符和总字符数< MAX_CHARS有没有办法解决这个问题?
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

您可以使用

^(?!.{11})(?=.*[a-ce-g]$)[a-ce-g][a-g]{0,9}$

请参阅正则表达式演示

细节

  • ^- 字符串的开始

  • (?!.{11})- 最多允许 10 个字符

  • (?=.*[a-ce-g]$)- 在 0 个或多个字符之后,最后一个应该来自FIRST SET

  • [a-ce-g]- 一封来自FIRST SET

  • [a-g]{0,9}- 零到九个字符SECOND SET

  • $- 字符串结束。

请注意,|内部字符类匹配文字管道字符,您需要将其从模式中删除。

如果(?!.{11})字符串中有任何 11 个字符(换行符除外),则在字符串的开头执行一次否定前瞻,并且匹配失败。您也可以使用(?=.{0,10}$),它只需要在字符串中包含 0 到 10 个字符。


查看完整回答
反对 回复 2022-10-15
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信