1

我正在尝试使用 , 在 PHP 中搜索一个字符串preg_match(),以返回一个采用“xdr”格式的字符串,其中 x 是一个数字。

否则字符串由字符、数字、'.' 组成。句号和空格。

我对正则表达式毫无希望,有人可以帮助我吗?

我已经尝试过^([a-zA-Z0-9]+)\s2dr$,但它不起作用

例如,字符串可能看起来像A really big 2.0 was 3dr once

4

2 回答 2

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);
于 2012-05-23T17:36:38.587 回答
0

你很近。

以下正则表达式将匹配一个数字,后跟一个或多个字母字符、数字、句号和空格,并以dr.

^\d[a-zA-Z0-9. ]+dr$

注意:不确定是否需要文字dr,如果没有,请从末尾删除。

于 2012-05-23T15:45:21.330 回答