检测字符串中的引用

时间:2010-12-07 20:34:22

标签: php regex apache preg-match

我正在使用php而我正在使用正则表达式来尝试检测报价。

我希望它只有在字符串

中找到引号才能找到匹配项
HELLO

无法找到任何匹配

"HELLO" 

应找到匹配

"HELLO

仍然应该找到匹配

6 个答案:

答案 0 :(得分:4)

正则表达式只是引号字符。

echo preg_match('/"/', $string);

HELLO为0,"HELLO"为1,"HELLO为1

答案 1 :(得分:3)

您可以使用带有preg_match的正则表达式,它会检查$ thestring中的任何双引号:

if(preg_match('"', $thestring)) { ... }

但使用strpos功能可能会更快:

if(strpos($thestring, '"') !== false) { ... }

if语句中的代码只有在找到双引号时才会执行。我的代码示例不会返回引用的文本,尽管您可以通过一些更改来实现。

答案 2 :(得分:1)

使用"(.*?)(\n|\r|$|")

示例:

http://img221.imageshack.us/img221/2994/screenshot2z0.png

编辑:根据您的评论我明白您不需要这样做;你需要的是Colin O'Dell的答案(即strpos函数)。不过,我还是把它留在这里以防其他人需要它。

答案 3 :(得分:1)

没那么难,恕我直言:) 我想你只是想确定给定字符串中是否有引号,对吧?那么它可以通过

来完成
preg_match('/"/',$string)

或更有效地通过

strpos($string,'"') || $string == '"'

答案 4 :(得分:0)

["]*HELLO["]* 

将匹配HELLO,无论是否有引号。

或者您可以使用

"{0,1}HELLO"{0,1}

答案 5 :(得分:0)

使用(trim($string, '"') !== $string)

(trim($string, '"\'') !== $string)引号或单引号