【问题标题】:preg_match for string - string [closed]字符串的 preg_match - 字符串 [关闭]
【发布时间】:2014-03-18 15:41:49
【问题描述】:

假设我有一个数组:

$length =['pre-tied','self-tie','large','small'];

如果我想从特定数组中获取 'string-string' 格式的值,preg_match 命令会是什么样子?

foreach($length as $size)
 if(preg_match("/^[A-Z,-,A-Z]$/i",$size))
    do something

foreach($length as $size)
 if(preg_match("/^[A-Z,-,A-Z]$/i",$size));
    do something

实际上,我认为第二个甚至没有意义,但由于我是正则表达式的新手,我不能确定..

【问题讨论】:

  • 试试$length[0]? (目前尚不清楚您的要求或试图实现的目标)
  • 感谢您的及时回答 dognose,但我想通过使用 preg_match 来完成。
  • 如果您尝试在数组中找到匹配项,您可以查看此问题。 (stackoverflow.com/questions/8831775/…)
  • 你有一个 actual 数组 - 或者你有 text literal $length =['pre-tied','self-tie']; 作为变量的内容并且想要做一个that ...? 中的正则表达式搜索
  • 您还想只查找预先绑定的值还是同时查找预先绑定和自绑定的值?数组中还会存在哪些其他变体?

标签: php arrays preg-match


【解决方案1】:

在处理正则表达式时,我解决这些问题的方法是从非常具体的开始,寻找模式并使其非常普遍。

最简单的匹配:

 /^pre-tied$/

匹配预先绑定的 e-t

 /^[A-Za-z]-[A-Za-z]$/

然后,如果您尝试匹配单连字符单词,请使用重复运算符之一(+、*)

 /^[A-Za-z]+-[A-Za-z]+$/

我们甚至可以使正则表达式更复杂,就像在这个 similar question 中一样,但我认为我想出的最终正则表达式应该匹配该数组中的两个单词。

【讨论】:

  • 感谢 hrgui 的明确回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-15
相关资源
最近更新 更多