c - 这个匹配 URL 的正则表达式有什么问题?

标签 c regex url cgi

我在使用 C 中的 regex.h 库设置正则表达式来匹配 URL 时遇到了一些困难。我有一个有效的 IP 正则表达式,我希望将其转换为匹配简单的字符串,例如 www.alphanumerictext12.com|edu|org。我的正则表达式定义本身的语法有问题。

下面是有效的 IPREGEX 代码和我尝试的 URL 正则表达式。

#define IPEXPR    "([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})"
#define URLEXPR "(www)\\.((?:[a-z][a-z]*[0-9]+[a-z0-9]*))\\.(com|edu|org)"

regex_t regex;

if(regcomp(&regex, IPEXPR, REG_EXTENDED) != 0)
  return 0;

if(regexec(&regex, inputURL, 0, NULL, 0) != 0)
  return 0;

最佳答案

尝试:

"www\\.[a-z]+[a-z0-9]*\\.(com|edu|org)"

我删除了[0-9]+并替换[a-z][a-z]*[a-z]+ .

关于c - 这个匹配 URL 的正则表达式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1734559/

相关文章:

c++ - 为什么返回类型上的类型限定符没有意义?

c - 将数组中的字符打印到 C 中的输出文件

c - 将c中的argv解析为unix中的命令

java - 从 url 中提取特定字段

regex - Postgresql 替换所有出现的字符串+

ios - 从应用程序生成主屏幕书签 (iOS)

c++ - 为什么 C 和 C++ 编译器在从未强制执行时允许函数签名中的数组长度?

javascript - 字母数字值的正则表达式,而不是两个连续的下划线下划线

android - android webview中如何区分url是用户点击还是自动跳转

node.js - 如何在 Node.js 中提取完整的 URL,而不使用 HTTP?