我需要一个如下所示的正则表达式。
输入字符串:
####
####white-space
Test#
Test#white-space
输出:
#### - invalid
####white-space - invalid
Test### - invalid
Test-Test###white-space - invalid
Test-Test# - valid
Test#white-space - valid
正则表达式应匹配以#或#[space]或#white-space结尾的字符串,但它不应与以重复的#或#### white-space结尾的字符串匹配。
我有这样的事情(https://regexr.com/3orvv):
^\s*\w*\S*(?:(#)(?!\1))\s?$
但它没有按预期工作。
答案 0 :(得分:2)
如果我理解了要求,你可以使用这个正则表达式:
^(?!.*#{2}\s*$).*#\s*$
(?!.*#{2}\s*$)
是一个负面的先行者,断言我们没有2个或更多#
后面跟着行末的可选空格。.*#\s*$
匹配#
,后跟0或更多的空格。