我需要一个正则表达式来匹配一个字符串
- 要么以特殊字符开头,
[#.>+~]
然后是小写的 ASCII 字,或者 - 仅由不同的特殊字符组成,例如
*
.
特殊字符应在组号 1 中捕获,即组号 2 中的以下单词(或在第二种情况下为空字符串)。
我可以用 处理第一种情况/^([#\.>+~]?)([a-z]+)$/
,但是如何将第二种情况放入这个正则表达式中以实现以下结果:
"#word" -> 1 => "#", 2 => "word"
"~word" -> 1 => "~", 2 => "word"
"##word" -> no match
"+#word" -> no match
"!word" -> no match
"*word" -> no match
"word" -> 1 => "", 2 => "word"
"*" -> 1 => "*", 2 => ""
"**" -> no match
"*word" -> no match