Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#正则表达式接受电流/电压值_C#_Regex - Fatal编程技术网

C#正则表达式接受电流/电压值

C#正则表达式接受电流/电压值,c#,regex,C#,Regex,我需要一个正则表达式,可以验证输入字符串,如果它是有效的电压或电流。 所需格式为任何后跟“V”或“A”的数字均有效 我曾想拆分字符串并验证它,但它不是一个健壮的解决方案,而且很难实现。您可以使用以下方法: ^[0-9]+\s?[vaVA]$ 另一个更简洁的表达是 ^\d+\s?[vaVA]$ ^\d+[vaVA]$ 或者,您可以简单地包含字符[va],并将表达式标记为不区分大小写 如果您不想接受数字和单位之间有空格的输入,请将\s?保留在外。所以这个表达应该是 ^\d+\s?[vaVA]$

我需要一个正则表达式,可以验证输入字符串,如果它是有效的电压或电流。 所需格式为任何后跟“V”或“A”的数字均有效


我曾想拆分字符串并验证它,但它不是一个健壮的解决方案,而且很难实现。

您可以使用以下方法:

^[0-9]+\s?[vaVA]$
另一个更简洁的表达是

^\d+\s?[vaVA]$
^\d+[vaVA]$
或者,您可以简单地包含字符
[va]
,并将表达式标记为不区分大小写

如果您不想接受数字和单位之间有空格的输入,请将
\s?
保留在外。所以这个表达应该是

^\d+\s?[vaVA]$
^\d+[vaVA]$
如果要允许负数,请在数字前面添加破折号作为可选项,如下所示:

^-?\d+\s?[vaVA]$
如果您希望接受十进制值:

 ^-?\d+(\.\d+)?\s?[vaVA]$
由于问题标记为C#,请确保转义正则表达式定义或将@运算符与字符串一起使用(即,
@“^\d+[avAV]$”

更新

要严格匹配,可以分别使用行的起始点(
^
)和行的结束点(
$
)。我已经更新了示例表达式以包含这些内容。

试试这个 /\d+v/gi 字符串c=“12V”//要验证的编号

如果(c.match(/\d+v/gi)!null) { 已验证的数字 } 其他的 { 无效 }

\d
=>选择所有号码
+
>选择所有数字,直到找到非数值
v
=>选择v
/i
=>使匹配不区分大小写
|
=>或运算符

我试过这个麦克风,但它接受所有以V和A组合结尾的字符串。我的要求是,它应该一次接受A或V。它还接受后跟A和V的混合字符的数字。你能举一个不正确匹配的字符串的例子吗?@Dipak也许你需要
^\d+[vaVA]$
这基本上是Mike提供的第三个选项,添加了开始和结束主持人。不知道为什么会被否决……除非给出测试用例来显示失败的地方……这是一个有效的答案。为什么使用全局标志?电流测量(安培)如何?对于安培,请尝试此/\d+v |\d+a/gi。您也可以不使用全局,只有当有更多行时才需要全局,如果您只需要检查一行的时间,则不需要全局