PHP正则表达式匹配以大写字母开头的正则表达式
听起来很简单,但我想不出来,请帮帮我 所以。。。我有以下数据的文件:PHP正则表达式匹配以大写字母开头的正则表达式,php,regex,Php,Regex,听起来很简单,但我想不出来,请帮帮我 所以。。。我有以下数据的文件: Name: Santi Surname: Dore Name: Rob Surname: Doe and so on.. 我只需要匹配以“Name:”开头的整个部分。。。不是“姓: 以下是我现在正在使用的匹配方法: /Name(:)(.*)/i 它将匹配两者,但我只需要名称: 请不要建议任何其他查找方法,请帮助我使用正则表达式按照我所描述的方式进行操作。去掉I修饰符,这会使正则表达式不区分大小写 和/或,添加一些单词边界:
Name: Santi
Surname: Dore
Name: Rob
Surname: Doe
and so on..
我只需要匹配以“Name:”开头的整个部分。。。不是“姓:
以下是我现在正在使用的匹配方法:
/Name(:)(.*)/i
它将匹配两者,但我只需要名称:
请不要建议任何其他查找方法,请帮助我使用正则表达式按照我所描述的方式进行操作。去掉
I
修饰符,这会使正则表达式不区分大小写
和/或,添加一些单词边界:
/\bName(:) (.*)\b/
^
字符将与行首匹配:
/^Name(:)(.*)/
注意,我已经删除了I
修饰符,这使得搜索不区分大小写
样本:
% cat ./test.php
#!/usr/bin/env php
<?php
$regex = '/^Name(:)(.*)/';
$data = <<<EOD
Name: Santi
Surname: Dore
Name: Rob
Surname: Doe
and so on..
EOD;
foreach (explode("\n", $data, -1) as $line)
{
if (preg_match($regex, $line, $matches))
{
printf("Found %s\n", $matches[2]);
}
}
?>
% ./test.php
Found Santi
Found Rob
%cat./test.php
#!/usr/bin/env-php
%/test.php
找到桑蒂
找到罗布
使用
\s
处理空间 真管用!谢谢什么是/b\b请你解释一下,我知道我是不区分大小写的搜索,但是如果你在开始时删除i并添加^,它就不起作用了。@Santiago/i
意味着/Name/i
匹配“Name”的任何大小写变体,即“Name”、“Name”、“Name”等。这正是你不想要的\b
是一个单词边界,包括空格、行尾、逗号等内容,即任何不是“单词字符”的内容。@Santiago我建议使用regexen并快速测试多种变体。非常欢迎。正则表达式可以很容易地解决许多复杂的问题。
/\b^(Name):\s[A-Z]+\s\b/