正则表达式,获取两个字符之间的字符串值

Joh*_*nes 18 php regex

我想在两个字符之间返回字符串,@和点(.).

我试图使用正则表达式,但无法找到它工作.

(@(.*?).)
Run Code Online (Sandbox Code Playgroud)

任何人?

Mar*_*ers 35

你的正则表达式几乎有效,你只是忘了逃避这个时期.此外,在PHP中,您需要分隔符:

'/@(.*?)\./s'
Run Code Online (Sandbox Code Playgroud)

s是DOTALL修饰符.

以下是如何在PHP中使用它的完整示例:

$s = 'foo@bar.baz';
$matches = array();
$t = preg_match('/@(.*?)\./s', $s, $matches);
print_r($matches[1]);
Run Code Online (Sandbox Code Playgroud)

输出:

bar
Run Code Online (Sandbox Code Playgroud)


Gum*_*mbo 11

试试这个正则表达式:

@([^.]*)\.
Run Code Online (Sandbox Code Playgroud)

表达式[^.]*将匹配除点之外的任何数字.普通的点需要被转义,因为它是一个特殊的角色.