我正在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");
答案 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,其中单词可以连字符(明确定义)或复合(不会)