Regex 我正在寻找一个正则表达式,不允许超过星字符连续
您好,我正在寻找一个正则表达式,它不允许连续写入超过个星号字符,也不允许字符串包含更多的星号字符。 例如:Regex 我正在寻找一个正则表达式,不允许超过星字符连续,regex,Regex,您好,我正在寻找一个正则表达式,它不允许连续写入超过个星号字符,也不允许字符串包含更多的星号字符。 例如: a*g*h* // is allowed ***** // is not allowed * //is not allowed *a //. is allowed 现在我有了这个正则表达式:^([^*]*\*{1,2}[^*]*\*[^*]**\*{1,2}[^*]*\*[^*]+\*{1,2}[^*]*.[^*]$ 有人可以帮我吗?您可以使用带替换的前瞻条件来执行此操作: ^(?
a*g*h* // is allowed
***** // is not allowed
* //is not allowed
*a //. is allowed
现在我有了这个正则表达式:^([^*]*\*{1,2}[^*]*\*[^*]**\*{1,2}[^*]*\*[^*]+\*{1,2}[^*]*.[^*]$
有人可以帮我吗?您可以使用带替换的前瞻条件来执行此操作:
^(?!\*$|.*\*\*).*
正则表达式详细信息:
:开始^
:如果我们在结束之前有(?!\*$\*.*\*)
,或者在输入之前的任何地方有*
,则会导致匹配失败的负面前瞻断言*
:匹配0个或更多字符*
^(?!\*+$)[^*]*(?:\*(?!\*)[^*]*)*$
请参阅(其中[^*]
替换为[^*\n]
以保持在同一行,因为演示是针对单个多行字符串而不是一组单独的字符串运行的)
详细信息
-字符串的开头^
-不(?!\*+$)
只允许字符串*
-0+字符,而非[^*]*
*
-零次或多次重复(?:\*(?!\*)[^*]*)*
-一个\*(?!\*)
后面没有另一个*
*
-0+字符,而非[^*]*
*
-字符串结束$
- 这是一个有效的正则表达式
^(?!\*{2})[^\\\s][^*\\\s]*(?:\*(?!\*)[^*\\\s]*)*$
使用^(?!*$.*\*.*)
作为负面表情。首先,对你有用吗?如有,请考虑接受。