我正在尝试编写一个正则表达式,它可以在字符串的开头或结尾使用通配符(*),但不能在其他字符之间。最多允许一个*,可以有任意数量的其他字符。
有效输入列表:
我想出下面的正则表达式。
有效输入列表:
- *abc
- abc*
- *abc*
- a*b*c
- *
*
A*
*A
AB*
*AB
A
AB
ABC
1
*1
1*
*12
12*
123
无效输入列表:
**
A**
**A
A*A
*A*
*AB*
*A*B*
1**
**2
*1*
*1*2
我想出下面的正则表达式。
^(?!(?:.*\*){2})[a-zA-Z0-9*]+$
除了A*A这种情况外,它适用于所有条件。我正在尝试修复它,但尚未成功。请帮忙修复。
^(?!.*\*\*)[a-zA-Z0-9,\s*]+$
?请参见https://regex101.com/r/jE0txh/1 - Wiktor Stribiżew(^\*?[a-zA-Z0-9]*$)|(^[a-zA-Z0-9]*\*?$)
... 试着用这个。 - GolamMazid Sajib(?!.*\b\*\b)
前瞻,^(?!(?:.*\*){2})(?!.*\b\*\b)[*a-zA-Z0-9]+$
。 - Wiktor Stribiżew