如何在正则表达式中添加用户定义的字符串

时间:2016-10-06 06:51:29

标签: regex string validation floating-point

您好我正在验证一个只接受float的文本框。我使用这个正则表达式

^(?:[1-9]\\d*|0)?(?:[.]\\d+)?$

验证它。它按预期工作。现在我想在正则表达式中添加用户定义的字符串,以便其含义不应更改。有办法吗?

1 个答案:

答案 0 :(得分:2)

要验证输入是否为浮点数,在大多数情况下不需要正则表达式,只需使用内置类来解析字符串输入,并检查字符串是否等于另一个,使用相应的字符串方法。 / p>

如果您无法访问代码,则可以使用alternation

"^(?:(?:[1-9]\\d*|0)?(?:[.]\\d+)?|MY STRING)?$"
  ^^^                            ^^^^^^^^^^^^

regex demo is here

简而言之:

  • ^ - 字符串的开头
  • (?: - 启动可选的非捕获组
    • (?:[1-9]\d*|0)?(?:[.]\d+)? - 您之前的模式
    • | - 或
    • MY STRING - 文字MY STRING substring
  • )? - 可选(由于?)非捕获组的结尾
  • $ - 字符串结尾

如果MY STRING是应该被视为文字的用户输入变量,而如果您有权访问代码,那么您应该考虑使用某些正则表达式转义方法转义该字符串(在Java中,使用Pattern.quote(user_str))。