【问题标题】:preg_match pattern search when found only forward slash or backward slash仅找到正斜杠或反斜杠时的 preg_match 模式搜索
【发布时间】:2016-02-12 02:46:15
【问题描述】:

目前我在使用 preg_match 搜索 /\ 时遇到问题

首先: 仅当 $searchWord 仅包含 /\ 时,我才希望我的条件为真。

$searchWord = preg_match('/[\/~`\\\]/', $searchWord) ? '*' : $searchWord;

第二: 如果任何单词包含/

example: $searchWord='event/' 

然后

$searchWord='event' . suffix '*'

【问题讨论】:

  • 这里 preg_match 的目的是什么?这会合适吗? $searchWord = ($searchWord == '/' || $searchWord == '\\') ? '*' : $searchWord;
  • 我不确定我是否理解这个问题。我通常喜欢使用 preg_match,但在这种情况下,进行几个 substr() 比较可能会更容易。
  • 感谢您的快速回答!但是如果 case 'event/' 那么将变成 'event*' 我想用后缀连接
  • 请修改问题。我不明白你想完成什么。
  • @MarkChhunlong 你能用代码示例详细解释一下你想要的后缀吗?

标签: php regex preg-match


【解决方案1】:

不确定是否完全了解您的需求,但这是否是您想要的:

$searchWord = preg_replace('#[/~`\\\]#', '*', $searchWord);

【讨论】:

  • 感谢@Toto 的回答!但是对于#是什么意思?任何字符?
  • @MarkChhunlong:在这种情况下,# 是正则表达式的分隔符,它允许不必转义斜线。
猜你喜欢
  • 1970-01-01
  • 2011-01-28
  • 2013-11-14
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多