更改preg_match条件

时间:2015-06-07 11:35:11

标签: php function preg-match

如果$word_one以元音开头,我的功能正在改变$word_two(j / que j'中的je / que je)。

function FrenchCompoundTenses($word_one, $word_two) {
if(preg_match('~(.*)\bje$~ui', $word_one, $m) && preg_match('~^[aeéiou]~ui>', $word_two)) 
    return "<td class=\"text-right text-muted\">{$m[1]}j'</td>" . $word_two;               
else 
    return "<td class=\"text-right text-muted\">". $word_one ."</td>" . $word_two;
}  

对于类似的功能,我必须改变这一部分:

&& preg_match('~^[aeéiou]~ui>', $word_two)

如果$word_two以HTML代码<u></td><td>开头,然后元音跟随,则应该有效。([aeéiou]

编辑:$word_one来自带代词的数组,而$word_two来自二维数组。在这种情况下,$word_two有两个字。

示例:

 $word_one= 'je' +   $word_two='aime'  =  j'aime 
 $word_one= 'tu' +   $word_two='aimes' = tu aimes 

使用此功能的所需输出:

 $word_one= 'je' +   $word_two='<u>aime' = j'aime (with html code between)
 $word_one= 'je' +   $word_two='</td><td>aime' = j'aime (with html code between)

1 个答案:

答案 0 :(得分:1)

&& preg_match('~^h?(?:[aæàâeéèêëiîïoôœuûù]|y(?![aæàâeéèêëiîïoôœuûù]))~ui', strip_tags($word_two))应解决问题。

(我在开头添加了一个可选的h,因为h是一个法语中的无声h。我添加了几个重音元音和{ {1}}没有后跟另一个元音。