d*****u 发帖数: 17243 | 1 我想在一个很长的字符串里搜索单词,比如China,
然后忽略大小写,把该字符串里China,china, CHINA之类的词都插上某个
输出的字符串含有,但是目标词大小写还是跟以前一样
比如CHINA不能变成China
不知道有没有简单一点的方法呢?
本来用str_ireplace()很方便,但是大小写就变了
不然就只有用笨办法一个一个定位,可能比较慢 |
l********a 发帖数: 1154 | 2 除了string replace,我还能想到正则 |
N**********d 发帖数: 9292 | 3 http://us2.php.net/manual/en/function.preg-replace.php
【在 d*****u 的大作中提到】 : 我想在一个很长的字符串里搜索单词,比如China, : 然后忽略大小写,把该字符串里China,china, CHINA之类的词都插上某个 : 输出的字符串含有,但是目标词大小写还是跟以前一样 : 比如CHINA不能变成China : 不知道有没有简单一点的方法呢? : 本来用str_ireplace()很方便,但是大小写就变了 : 不然就只有用笨办法一个一个定位,可能比较慢
|
a***y 发帖数: 2803 | 4 echo preg_replace("/^([Cc][Hh][Ii][Nn][Aa])$/","$1",$mystring);
可以显示替换后的string.
【在 d*****u 的大作中提到】 : 我想在一个很长的字符串里搜索单词,比如China, : 然后忽略大小写,把该字符串里China,china, CHINA之类的词都插上某个 : 输出的字符串含有,但是目标词大小写还是跟以前一样 : 比如CHINA不能变成China : 不知道有没有简单一点的方法呢? : 本来用str_ireplace()很方便,但是大小写就变了 : 不然就只有用笨办法一个一个定位,可能比较慢
|
a***y 发帖数: 2803 | 5 插在哪儿啊,头上还是尾巴上?
象这样?
China
【在 d*****u 的大作中提到】 : 我想在一个很长的字符串里搜索单词,比如China, : 然后忽略大小写,把该字符串里China,china, CHINA之类的词都插上某个 : 输出的字符串含有,但是目标词大小写还是跟以前一样 : 比如CHINA不能变成China : 不知道有没有简单一点的方法呢? : 本来用str_ireplace()很方便,但是大小写就变了 : 不然就只有用笨办法一个一个定位,可能比较慢
|
d*****u 发帖数: 17243 | 6 这个办法还不错
只是如果查找对象每次不同的话,每次都要先把字符分开
【在 a***y 的大作中提到】 : echo preg_replace("/^([Cc][Hh][Ii][Nn][Aa])$/","$1",$mystring); : 可以显示替换后的string.
|
a***y 发帖数: 2803 | 7 "每次都要先把字符分开"什么意思,举个例子?
【在 d*****u 的大作中提到】 : 这个办法还不错 : 只是如果查找对象每次不同的话,每次都要先把字符分开
|
d*****u 发帖数: 17243 | 8 就是说查找对象是个变量,事先不知道是什么单词
【在 a***y 的大作中提到】 : "每次都要先把字符分开"什么意思,举个例子?
|
a***y 发帖数: 2803 | 9 对呀, $1 就是指代的那个变量啊.
【在 d*****u 的大作中提到】 : 就是说查找对象是个变量,事先不知道是什么单词
|
d*****u 发帖数: 17243 | 10 我的意思是,不一定每次都查China
下次可能是另外一个单词,在字符串变量里面的
所以这么做的话,要先把字符串的字符逐个分开
【在 a***y 的大作中提到】 : 对呀, $1 就是指代的那个变量啊.
|
d*******3 发帖数: 6550 | 11 很简单啊,
echo preg_replace("/^(.*)(china)(.*)$/i","$1$2$3",$mystring);
同一个单词不区分大小写匹配就行了,如果是变量就把china 换成变量就可以了 |