#(\d{8})[\w\W]+#
你好!ICAC,请配合我们调查。@无名啊,所以这就是考验真正技术的时候了
http://www.1kmb.com
参考了《GB/T 4761家庭关系代码》,把里面的关系抽出来,允许任意个关系组合(如三子四女)
<?php
$relations = '本人|户主|配偶|夫|妻|子|独生子|长子|次子|三子|四子|五子|养子|继子|女婿|其他儿子|女|独生女|长女|次女|三女|四女|五女|养女|继女|儿媳|其他女儿|孙子|孙女|外孙子|外孙女|孙媳妇|外孙媳妇|孙女婿|外孙女婿|曾孙子|外曾孙子|曾孙女|外曾孙女|其他孙子|其他孙女|其他外孙女|其他外孙女|父母|父亲|母亲|公公|婆婆|岳父|岳母|继父|养父|继母|养母|其他父母关系|祖父母|外祖父母|祖父|祖母|外祖父|外祖母|配偶的祖父母|配偶的外祖父母|曾祖父|曾祖母|配偶的曾祖父母|配偶的外曾祖父母|其他祖父母关系|其他外祖父母关系|兄弟姐妹|兄|嫂|弟|弟媳|姐姐|姐夫|妹妹|妹夫|其他兄弟姐妹|其他|伯父|伯母|叔父|婶母|舅父|舅母|姨父|姨母|姑父|姑母|堂兄弟|堂姐妹|表兄弟|表姐妹|侄子|侄女|外甥|外甥女|其他亲属|非亲属';
$patten = "^(\d{8}).+(\d{3})号(.+?)(($relations)+)(男|女)(\d{16,17}[\dxX])$";
$str = '00000001河南省河南市河南区001号张信哲三子三女男12345678901234567X';
if (preg_match("/$patten/", $str, $matches)) {
echo "户 号:$matches[1]\n";
echo "门 牌:$matches[2]\n";
echo "姓 名:$matches[3]\n";
echo "关 系:$matches[4]\n";
echo "性 别:$matches[6]\n";
echo "身份证:$matches[7]\n";
}
结果:
户 号:00000001
门 牌:001
姓 名:张信哲
关 系:三子三女
性 别:男
身份证:12345678901234567X
嘈杂字符?
$patten = "(\d{8}).+(\d{3})号(.+?)(($relations)+).*?(男|女)(\d{16,17}[\dxX])";
$str = '00000001河南省河南市河南区001号张信哲三子三女【嘈杂字符】男12345678901234567X';
[聊天-公共聊天室] o:@寻梦xunm,催更ᥬ᭄
感觉不难,但是我不会
http://www.1kmb.com