PHP将字符串与regex匹配,如果匹配的字符串之后没有数字

时间:2015-08-23 11:08:48

标签: php regex

让我们说我有一个类似IF(A1>0,1,2)的excel函数我通过pregex和字典匹配它我将它翻译成捷克语(KDYŽ(A1>0,1,2))。当我将其翻译回来时,我应该得到相同的字符串,但我得到IF(AND1>0,1,2)而不是它。因为“A”是捷克语“AND”,这是excel函数中的关键词之一。

所以我需要grep所有字母,而在它们之后没有数字(=不是单元格名称),当我使用这段代码获取匹配单词数组时如何实现呢?

$text = strtolower("KDYŽ(A1>0,1,2)");

if (preg_match_all('/[a-zěščřžýáíéúůóďťň]+/i',$text,$match)) {
  /* matched text should be:
  $match[0] = "KDYŽ";
  no $match[1] = "A" should exists;*/
}

1 个答案:

答案 0 :(得分:1)

使用

'/[a-zěščřžýáíéúůóďťň]+[^0-9]/i'

匹配你的角色后面没有0-9。您需要从匹配中删除最后一个字符,因为您搜索的字符串后面的第一个字符也将被返回。

或者,试试

'/[a-zěščřžýáíéúůóďťň]+(?![0-9])/i'

这是一个负面的预测。