正则表达式只允许一次和最后一次使用星号(*)

Regex allow asterisk(*) only once time and in the end

我只想传递这样的字符串:

abc*
123*
abc 123*
abc-123abc*

我不想传递这样的字符串:

 - abc**
 - abc*123
 - *abc

星号必须在最后并且只能出现一次

使用像 \* 这样的正则表达式,我得到了所有星号,但我不知道我是如何指定的。我不太擅长正则表达式。

您可以使用

^[^*]*\*$

请注意,它还会匹配 * 字符串。如果必须至少有两个字符,请将 [^*]* 部分替换为 [^*]+ 以匹配最终 *.

之前除 * 之外的一个或多个字符

regex demo。详情:

  • ^ - 字符串的开头
  • [^*]* - * 以外的零个或多个字符,尽可能多(贪婪地)
  • \* - 一个 * 字符
  • $ - 在字符串末尾。