我应该使用哪个正则表达式来验证VB中的权重?

时间:2018-02-18 16:16:34

标签: .net regex vb.net

在我的一个程序中;我想使用正则表达式和匹配语句,以确保用户正确地将个人的权重输入到文本框中,并确保以正确的格式输入。但是我不知道要在VB.Net中使用RegEx类来实现哪一个并且不是很有经验。

但是,我知道使用的正则表达式必须确保用户已按以下格式输入信息:

123lb或122223lb或987LB或23lB

“lb”之前使用的位数无关紧要,但“lb”部分必须不区分大小写。除了“lb”之外,RegEx还必须寻找其他字母。

例如,一些不应匹配的示例:

  • lb123(lb必须在数字之后)
  • ab987(唯一应匹配的字母是lb)
  • 4875638546cder(这里的位数很好,但字母不仅仅是lb)

因此总的来说,正则表达式必须:

  • 除了'lb'
  • 之外,找不到任何其他字母
  • 确保'lb'位于用户输入的数字之后
  • 不区分大小写

非常感谢任何帮助!

感谢您阅读并度过美好的一天!

3 个答案:

答案 0 :(得分:2)

  1. 使用" lb"设置文本框旁边的标签。在它。
  2. 使用const serialize = (stat: IFileStat) => Object.keys(stat).reduce((result, name) => { // console.log(result); if (name === 'resource') { return result = { ...stat, resource: stat[name].toString() }; } else if (name === 'children') { return { ...result, ...{ children: stat[name].map(child => serialize(child as any)) } } } else { return result } }, {}); KeyPress事件处理程序限制用户仅在文本框中放置数字。
  3. 总是更好地防止用户输错。

    如果你想允许不同的重量单位,上面的解决方案会有点小问题。在这种情况下,我会将文本框与" lb"交换。对于有效权重单位的列表框。通过这种方式,您可以放心地为下次计算获得一个数字和一个单位。

答案 1 :(得分:1)

加入我的茶,因为我认为到目前为止的建议可以考虑到.NET RegexOptions,这使你有可能构建一个更简单的模式。

假设WeightTextBox是用户输入他/她体重的文本框:

If Regex.IsMatch(WeightTextBox.Text, "^\d+LB$", RegexOptions.IgnoreCase) Then
    'Correct input.
Else
    'Invalid input.
    MessageBox.Show("Invalid input!", "Error", MessageBoxButtons.OK, MessageBoxButtons.Error)
End If

模式说明:

^\d+LB$

^          => Match beginning of string (or line, if RegexOptions.Multiline is set).
\d+        => Match one or more numerical characters.
LB         => Match "LB" (without quotes).
$          => Match end of string (or line, if RegexOptions.Multiline is set).

RegexOptions.IgnoreCase使匹配不区分大小写,这意味着它也会匹配LblBlb

答案 2 :(得分:0)

[0-9]+[lL][bB]可以做到这一点。

说明:

[0-9]+匹配1个或更多数字

[lL]匹配l或L

[bB]匹配b或B