让我们说我有一个类似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;*/
}
答案 0 :(得分:1)
使用
'/[a-zěščřžýáíéúůóďťň]+[^0-9]/i'
匹配你的角色后面没有0-9。您需要从匹配中删除最后一个字符,因为您搜索的字符串后面的第一个字符也将被返回。
或者,试试
'/[a-zěščřžýáíéúůóďťň]+(?![0-9])/i'
这是一个负面的预测。