regex - 正则表达式只允许星号(*)一次并最终
问题描述
我只想传递这样的字符串:
abc*
123*
abc 123*
abc-123abc*
我不想传递这样的字符串:
- abc**
- abc*123
- *abc
星号必须在最后且仅出现一次。
使用正则表达式,\*
我得到所有星号,但我不知道我是如何指定的。我不太擅长正则表达式。
解决方案
您可以使用
^[^*]*\*$
请注意,它也会匹配一个*
字符串。如果必须至少有两个字符,请将[^*]*
部分替换[^*]+
为匹配一个或多个字符,而不是*
在 final 之前*
。
请参阅正则表达式演示。细节:
^
- 字符串的开头[^*]*
- 除 之外的零个或多个字符*
,尽可能多(贪婪地)\*
- 一个*
字符$
- 在字符串的末尾。
推荐阅读
- flutter - Flutter 的 pubspec.yaml 中依赖版本号前的脱字符号 (^) 是什么?
- java - 将圆角应用于 CardView 内部元素
- java - 如何锁定到 viewpager 中的页面?
- c# - 如何从不同的类中选择属性并为其赋值
- python - 在不污染全局命名空间的情况下初始化/导入子模块
- python - 使用 Selenium 和 Python 在 Instagram 通知中单击“现在不”
- c# - 获取具有相同月份引用的两个日期之间的值总和
- android - Firebase 匿名身份验证(Android):终身?
- postgresql - postgres -c
= 不适用于 docker 中的 Postgres 11 - java - 如何以编程方式向 Google Pay 添加付款方式?