我正在尝试使用preg_match()
在PHP中搜索字符串,以返回格式为“xdr”的字符串,其中x是单个数字。
该字符串由字符,数字,'。'组成。句号和空格。
我对正则表达式毫无希望,有人可以帮助我吗?
我已经尝试了^([a-zA-Z0-9]+)\s2dr$
,但它不起作用
例如,字符串可能看起来像A really big 2.0 was 3dr once
答案 0 :(得分:2)
据我了解您的需求,此正则表达式将匹配包含一些数字后跟dr
的字符串:
/\b\d+dr\b/
在preg_match
中的行动:
preg_match('/\b\d+dr\b/', $string);
<强>解释强>
/ : regex delim
\b : word boundary
\d+ : one or more digit
dr : literaly dr
\b : word boundary
/ : regex delim
如果您希望其他字符仅为characters, numbers, '.' full stops and spaces
,请使用此选项:
preg_match('/^[\w\d. ]*\b\d+dr\b[\w\d. ]*$/', $string);
并且,兼容unicode:
preg_match('/^[\pL\pN. ]*\b\pN+dr\b[\pL\pN. ]*$/', $string);
答案 1 :(得分:0)
你很亲密。
以下正则表达式将匹配单个数字,后跟一个或多个字母字符,数字,句点和空格,并以dr
结尾。
^\d[a-zA-Z0-9. ]+dr$
注意:不确定您是否希望文字dr
,如果没有,请将其从最后删除。