我想在PHP中使用preg_match和正则表达式来检查字符串是否以" + 44"或者" 0",但是如果没有将+读取为匹配前一个字符一次或多次,我怎么能这样做呢? (+44 | 0)会工作吗?
答案 0 :(得分:4)
使用^来表示开头,使用反斜杠\来转义+字符。所以你要检查
^\+44 | ^0
在php中,要将正则表达式存储在字符串中,您不需要加倍反斜杠\来混淆事物,只需使用单引号,如:
$regexp = '^\+44 | ^0';
事实上,你甚至不需要使用任何东西,这也有效:
$regexp = "^\+44 | ^0";
答案 1 :(得分:3)
反斜杠是正则表达式的默认转义字符。如果它在PHP字符串中使用,您可能必须转义反斜杠本身,因此您使用"(\\+44|0)"
之类的字符串常量。正则表达式本身就是(\+44|0)
。
答案 2 :(得分:2)
您可以通过多种方式完成此操作。在我认识的两个人中:
一个是使用转义字符(即反斜杠)转义+
^(\+44|0)
或者将+
置于角色类[]
内,这意味着该角色具有字面含义。
^([+]44|0)
^
是锚字符,表示根据您的标志(修饰符)开始字符串/行。