正则如何匹配第一个的和最后一个
1111111
2222222
33333333
4444444
55555555
66666666
7777777
匹配出
1111111
中的和最后一段
7777777
的正则如何弄?
回复讨论(解决方案)
preg_match_all('/^
.+|
.+$/U',$s,$m);
preg_match_all('/^
.+|
.+$/U',$s,$m);
这样匹配到的是整一段了
我要的只是一个
preg_match_all('/^
.+()|
.+()$/U',$s,$m);
$s =1111111Array2222222
33333333
4444444
55555555
66666666
7777777
TXT;preg_match('#().+()#s', $s, $r);print_r($r);
(
[0] =>
2222222
33333333
4444444
55555555
66666666
7777777
[1] =>
[2] =>
)
如果只是想要匹配
的话,可以不用正则吧。PHP5,现在应该没有谁用PHP4吧。。。
$str = '1111111
2222222
33333333
4444444
55555555
66666666
7777777
';$fp = stripos($str, '');$first = substr($str, $fp, 4);$ep = stripos($str, '');$end = substr($str, $ep, 4);
别用正则了
11111112222222
33333333
4444444
55555555
66666666
7777777
';print strlen($s);print stripos($s,'');print strripos($s,'');?>运行结果:11310109
如果只是想要匹配
的话,可以不用正则吧。PHP5,现在应该没有谁用PHP4吧。。。
$str = '1111111
2222222
33333333
4444444
55555555
66666666
7777777
';$fp = stripos($str, '');$first = substr($str, $fp, 4);$ep = stripos($str, '');$end = substr($str, $ep, 4);
写错了,$ep = strripos($str, '');
楼上兄弟和我想一样了
如果只是想要匹配
PHP5,现在应该没有谁用PHP4吧。。。
$str = '1111111
2222222
33333333
4444444
55555555
66666666
7777777
';$fp = stripos($str, '');$first = substr($str, $fp, 4);$ep = stripos($str, '');$end = substr($str, $ep, 4);
写错了,$ep = strripos($str, '');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
$s =11111112222222
33333333
4444444
55555555
66666666
7777777
TXT;echo preg_replace('#()(.+)()#s', '$1aaa$2$3BBB', $s);
1111111
aaa2222222
33333333
4444444
55555555
66666666
7777777
BBB如果只是想要匹配 的话,可以不用正则吧。
PHP5,现在应该没有谁用PHP4吧。。。
$str = '1111111
2222222
33333333
4444444
55555555
66666666
7777777
';$fp = stripos($str, '');$first = substr($str, $fp, 4);$ep = stripos($str, '');$end = substr($str, $ep, 4);
写错了,$ep = strripos($str, '');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
如果只是想要匹配
PHP5,现在应该没有谁用PHP4吧。。。
$str = '1111111
2222222
33333333
4444444
55555555
66666666
7777777
';$fp = stripos($str, '');$first = substr($str, $fp, 4);$ep = stripos($str, '');$end = substr($str, $ep, 4);
写错了,$ep = strripos($str, '');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
也可以使用这种啊,得出了两个''的位置,在把字符切一下再加上你要加的文字。
不过如果字符串本身很大的话,这个效率不怎么样。
如果只是想要匹配
PHP5,现在应该没有谁用PHP4吧。。。
$str = '1111111
2222222
33333333
4444444
55555555
66666666
7777777
';$fp = stripos($str, '');$first = substr($str, $fp, 4);$ep = stripos($str, '');$end = substr($str, $ep, 4);
写错了,$ep = strripos($str, '');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
也可以使用这种啊,得出了两个''的位置,在把字符切一下再加上你要加的文字。
不过如果字符串本身很大的话,这个效率不怎么样。
不用切,找出位置直接替换就可以
11111112222222
33333333
4444444
55555555
66666666
7777777
';print strlen($s);$find = '';$find_len = 4; // 长度$s = substr_replace($s, $find."第一个p", stripos($s,''), $find_len);$s = substr_replace($s, $find."最后一个p", strripos($s,''), $find_len);print $s;
如果只是想要匹配
PHP5,现在应该没有谁用PHP4吧。。。
$str = '1111111
2222222
33333333
4444444
55555555
66666666
7777777
';$fp = stripos($str, '');$first = substr($str, $fp, 4);$ep = stripos($str, '');$end = substr($str, $ep, 4);
写错了,$ep = strripos($str, '');
楼上兄弟和我想一样了
其实我是要第一段的后面追加一些文字、和最后一段也追加一些文字
也可以使用这种啊,得出了两个''的位置,在把字符切一下再加上你要加的文字。
不过如果字符串本身很大的话,这个效率不怎么样。
不用切,找出位置直接替换就可以
11111112222222
33333333
4444444
55555555
66666666
7777777
';print strlen($s);$find = '';$find_len = 4; // 长度$s = substr_replace($s, $find."第一个p", stripos($s,''), $find_len);$s = substr_replace($s, $find."最后一个p", strripos($s,''), $find_len);print $s;
这个可以