一个单词的正则表达式

时间:2011-06-10 00:05:40

标签: php regex

我正在PHP中进行字符串解析问题。我想要一个字典中单词的正则表达式。该单词只能包含A-Z和a-z。我想出了这个正则表达式,但这似乎无法正常工作。有人可以帮忙。

$regexp = "/[A-z]+/";
if(preg_match($regexp,$buffer)){    
   print $buffer . "<BR>";
}

添加rkt评论的可用性

目前使用此正则表达式

$regexp = "/[A-Za-z]+/";

但是仍有许多不相关的词被打印出来,例如。

a.new,#quickbar a.new{color:#ba0000} enwiki:resourceloader:filter:minify-css:5:f2a9127573a22335c2a9102b208c73e7 wgNamespaceNumber=0;
wgAction="view";
wgPageName="Roger_Federer";
wgMainPageTitle="‌​Main Page";
wgWikimediaMobileUrl="http:\/\/en.m.wikipedia.org\/wiki";
document.writeln("\x3cdiv id=\"localNotice\"\x3e\x3cp\x3e\x3c/p\x3e\n\x3c/div\x3e");

5 个答案:

答案 0 :(得分:5)

如果你只想匹配整个单词......

/\b[A-Z]+\b/i

答案 1 :(得分:3)

除了Limo Wan Kenobi指出的问题,你的正则表达式并没有按照你的想法做到。

/[A-Za-z]+/

所有这些检查都是在输入中的某个地方出现了一个字母。如果您的输入如下所示:

1111112222222333333333A333333444444555555567

它仍将匹配。

您正在寻找的是这个正则表达式:

/^[A-Za-z]+$/

这将匹配字符串的开头,然后是一个或多个字母,最后是字符串的结尾。现在,除了信件之外没有任何空间!

答案 2 :(得分:0)

正则表达式应该是/\b[A-Za-z]+\b/,想到匹配词典中的单词,你可能想要比那更严格的东西,因为单词通常不能在任何奇数位置有上限。

答案 3 :(得分:0)

你的正则表达式应该是

$regexp = "/[A-Za-z]+/";

答案 4 :(得分:0)

您可以查看我对How do you split a javascript string by spaces and punctuation?的答案,其中包含可用于将英文文本分解为单词和标点符号的JavaScript,其中单词可以连字符(明确定义)或复合(不会)