【问题标题】:Find starting character(s) and special characters in a String在字符串中查找起始字符和特殊字符
【发布时间】:2015-04-08 22:26:54
【问题描述】:

我是 RegEx 的新手,需要想出一个可以在字符串中找到匹配字符的 RegEx。

我可能得到的字符串是:

DFG-2344KG
4GGRTE/345
9TTRRE-547
7TTRRE-547
T89FGFGD+9

所以我想要的是一个正则表达式,它将检查字符串是否以 DFG47 开头T 并且它只有“-”表示字母数字字符以外的特殊字符。

所以从上面的字符串列表中,只有 9TTRRE-547 是一个有效的字符串。

我正在寻找可以为我做到这一点的 RegEx。到目前为止,我想出了:

^(DFG|T|4|7)

上面的 RegEx 正确地找到了无效的起始字符。现在的挑战是找到一个除“-”之外的特殊字符,它可以出现在字符串的任何位置。

有什么建议吗?

【问题讨论】:

  • 我想我对你的例子感到困惑。为什么 9TTRE-547 是有效字符串而 DFG-2344KG 不是?

标签: regex string


【解决方案1】:

我会尝试:

^(DFG|4|7|T)[A-Z0-9-]+$

到目前为止,这正是您与[A-Z0-9-]+ 一起表示的内容:“任何字母数字字符或-。说+ 是指它出现一次或多次。

然后,$ 表示行尾。

你可以看到它在 https://regex101.com/r/mX5kV8/1 中使用这些匹配:

DFG-2344KG
7TTRRE-547
7TTRRE547

【讨论】:

  • 别忘了锚定结尾。此外,最好指出这是 ERE,并且表达式在 BRE 中看起来会有所不同。
  • @ghoti 好点,用$ 编辑!关于 ERE/BRE,老实说,我不知道这些见解,所以我只是相信你是 ERE。
猜你喜欢
  • 2015-07-10
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
相关资源
最近更新 更多