-1

我目前将 regex.h 用于 ac 程序

想要确保一个字符串以围绕字母数字字符的 @ 开头和结尾,(中间只有 2 个 @ 没有)

更新:我想我通过使用 ^ 和 $ 锚标签解决了第一个问题。如果这看起来不是解决问题的正确方法,请告诉我。

我现在的代码:

(regexCheck(tag, "^[@]+[A-Za-z0-9]+[@]$") == 1)

另外我想确保一个字符串包含一个带有字母数字字符的 _ (例如 _test 、 te_st 、 test_ 都是有效的,但 test 是无效的)

我现在的代码:

(regexCheck(string, "[A-Za-z0-9_]")) == 1

任何帮助将不胜感激,但也将不胜感激正则表达式语法的解释。

4

1 回答 1

0

您可以使用

^@[A-Za-z0-9]*_[A-Za-z0-9]*@$

请参阅正则表达式演示。请注意,您应该REG_EXTENDED在编译正则表达式模式时指定标志,以便$可以正确解析为字符串锚的结尾。

图案细节

  • ^- 字符串的开始
  • @- 一个@字符
  • [A-Za-z0-9]*- 0 个或多个 ASCII 字母、数字
  • _- 一个下划线
  • [A-Za-z0-9]*- 0 个或多个 ASCII 字母、数字
  • @- 一个@字符
  • $- 字符串锚的末端。
于 2018-01-21T19:21:15.053 回答