正则表达式匹配除特定值之外的一个或多个字母的序列

发布于 2024-09-01 02:58:19 字数 128 浏览 1 评论 0原文

正在寻找有关正则表达式的帮助来执行以下操作:

  • 必须是 Alpha 字符
  • 必须至少为 1 个字符
  • 不能是特定值,例如!=“默认”

感谢您的帮助, 戴夫

Looking for some help with a Regular Expression to do the following:

  • Must be Alpha Char
  • Must be at least 1 Char
  • Must NOT be a specific value, e.g. != "Default"

Thanks for any help,
Dave

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

油饼 2024-09-08 02:58:19

使用负前瞻:

^(?!Default)[a-zA-Z]+$

Use a negative lookahead:

^(?!Default)[a-zA-Z]+$
分开我的手 2024-09-08 02:58:19

分两步解决这个问题:

  1. 与正则表达式 [a-zA-Z]+ 进行比较,这意味着“az 或 AZ 中的一个或多个字母
  2. 如果通过了测试,则在 尝试将这两个测试塞进一个您

不理解的复杂正则表达式中是没有意义的,使用正则表达式的一个好的经验法则是,如果您必须询问某人如何做。这样做,您应该努力使用尽可能简单的解决方案,如果您不理解正则表达式,您将无法随着时间的推移维护代码

if regexp_matches('[a-zA-Z]+', string) && string not in ['Default', 'Foobar', ...] {
    print "it's a keeper!"
}

Solve this in two steps:

  1. compare against the regular expression [a-zA-Z]+ which means "one or more of the letters from a-z or A-Z
  2. if it passes that test, look it up in a list of specific values you are guarding against.

There's no point in trying to cram these two tests into a single complex regular expression that you don't understand. A good rule of thumb with regular expressions is, if you have to ask someone how to do it, you should strive to use the least complex solution possible. If you don't understand the regular expression you won't be able to maintain the code over time.

In pseudocode:

if regexp_matches('[a-zA-Z]+', string) && string not in ['Default', 'Foobar', ...] {
    print "it's a keeper!"
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文