Regex “如何匹配”;命令行参数";用正则表达式设置字符串的样式?
我试图验证我在一个应用程序中使用的字符串,它的结构基本上与linux命令行参数相同 例如Regex “如何匹配”;命令行参数";用正则表达式设置字符串的样式?,regex,Regex,我试图验证我在一个应用程序中使用的字符串,它的结构基本上与linux命令行参数相同 例如 -m-b-s等 我基本上是在尝试制作模式 开头没有空格,但单词之间允许空格 如果不是第一个-,则在-之前必须有空格 只要符合模式,您可以输入的数量就应该没有限制。例如,这些都可以-m-fd-可选,但这样的东西是不可能的-m-fd测试字符串 我设法做到了^-[a-zA-Z]\s,但我不知道如何重复这一点!这也不适用于长度超过1个字符的标志,并且还存在一些空格问题 要匹配并验证这样一条线,您可以使用 ^-[
-m-b-s
等
我基本上是在尝试制作模式
- 开头没有空格,但单词之间允许空格
- 如果不是第一个
,则在-
之前必须有空格-
- 只要符合模式,您可以输入的数量就应该没有限制。例如,这些都可以
,但这样的东西是不可能的<代码>-m-fd测试字符串-m-fd-可选
^-[a-zA-Z]\s
,但我不知道如何重复这一点!这也不适用于长度超过1个字符的标志,并且还存在一些空格问题 要匹配并验证这样一条线,您可以使用
^-[^\s-][^-]*(?:\s-[^\s-][^-]*)*$
看
要提取每个选项,可以使用
(?<!\S)-[^\s-][^-]*
(?
看
详细信息
^
-字符串的开头
-
-连字符
[^\s-][^-]*
-除空格和-
之外的任何字符,然后是0个或更多字符,除-
(?:\s-[^\s-][^-]*)*
-0次或多次重复
\s
-空白
-
-连字符
[^\s-][^-]*
-除空格和-
之外的任何字符,然后是0个或更多字符,除-
$
-字符串结束
要匹配这样一行,您可以使用^-[^\s-][^-]*(?:\s-[^\s-][^-]*)*$
进行提取(?@WiktorStribiżew抱歉,我现在才开始测试它。是的!非常感谢!嘿,我发现了其中的一个漏洞。在示例-m-fd teststring
中,当teststring需要在它前面加一个破折号时,它会匹配。有什么想法吗?:@Borassign可能你想要^-[^\s-]+(?:\s-[^\s-]+)*$
和(?)??