我正在尝试构建一个正则表达式,它将检查字符串是否有连字符0或1次.
所以它会返回以下字符串就好了.
1-5
1,3-5
1,3
Run Code Online (Sandbox Code Playgroud)
以下是错误的.
1-3-5
Run Code Online (Sandbox Code Playgroud)
我尝试了以下内容,但是1-3-5这样很好:
([^-]?-){0,1}[^-]
Run Code Online (Sandbox Code Playgroud)
Fis*_*rdo 10
这有效:
^[^-]*-?[^-]*$
^^ ^ ^ ^
|| | | |
|| | | |-- Match the end of string
|| | |------- Match zero or more non-hyphen characters
|| |--------- Match zero or one hyphens
||-------------- Match zero or more non-hyphen characters
|--------------- Match the beginning of string
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您需要指定匹配输入字符串的begin(^)和end($),这样就不会像字符串那样获得多个匹配项1-3-5.
也许更简单的事情:
var hyphens = input.Count(cc => cc == '-');
Run Code Online (Sandbox Code Playgroud)
你的正则表达式有效,因为它找到了符合你标准的连字符的第一个实例.您可以使用以下正则表达式,但它不是理想的:
^[^-]*-?[^-]*$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9807 次 |
| 最近记录: |