【问题标题】:preg_match regex syntaxpreg_match 正则表达式语法
【发布时间】:2016-02-01 18:27:40
【问题描述】:

尝试了不同的正则表达式生成器,但没有成功。

我在 preg_match 中有这个字符串:

$search_string = "/^:([A-Za-z0-9_\-]+)[@!~a-zA-Z0-9@\.\-]+\s*([A-Z]+)\s*[:]*([\#a-zA-Z0-9\-]+)*\s*[:]*([!\#\-\.A-Za-z0-9 ]+)*/";  

它基本上是用于用户名的。可悲的是,当用户名中有下划线时。例如 iam_coolguy 不起作用。

如何在这个搜索字符串中添加下划线? 我似乎无法弄清楚正则表达式的工作原理。

它不是重复的,滚动过去所有 preg_match 线程。

/[a-z]/i 对我来说似乎很容易理解,但我的字符串对于我的知识来说太高级了。

谢谢。

【问题讨论】:

  • [a-z_]+ 匹配具有 _ 的用户名有什么问题?为什么这么长的正则表达式?
  • 你到底为什么要限制用户名?
  • 由于您没有向我们展示输入样本,我们无法为您提供帮助。 “用户名”本质上是无用的信息。 ANYTHING 可以是用户名,这意味着 /.*/ 将是一个有效的正则表达式。

标签: php regex preg-match


【解决方案1】:

如果你只是想在 // 之间抓取一些东西

我只会使用这个正则表达式\/(.*)\/

但正如其他人所说,您没有对用户名可以和不可以有什么限制。

如果你需要更多,说点什么,我会调整我的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-05
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    相关资源
    最近更新 更多