php 中查詢某個字元在字串中出現的所有位置
昨天回家,一個朋友討論起來查詢某個字元在指定的字串中所有出現的位置..
於是,今天早上寫個方法試試
/**
* 查詢某個字元在字串中出現的所有位置
* $str string 被查詢字串
* $char string 查詢字元
* $arr array() 返回陣列
*/
function getCharpos($str, $char){
$j = 0;
$g = 0;
$arr = array();
$count = substr_count($str, $char);
for($i = 0; $i < $count; $i++){
$j = strpos($str, $char);
if($i == 0){
$arr[] = $j;
}else{
$arr[] = $j + $g + 1;
}
$str = substr($str, $j+1);
$g = end($arr);
}
return $arr;
}
原理就是擷取字串,再查詢這個字元的位置。。。
不過後來,我看了一下手冊,發現函式strpos還有第三個引數,就是告訴函式從哪算起,發現這個比較方便。。。
於是改成:
function getCharpos2($str, $char){
$j = 0;
$arr = array();
$count = substr_count($str, $char);
for($i = 0; $i < $count; $i++){
$j = strpos($str, $char, $j);
$arr[] = $j;
$j = $j+1;
}
return $arr;
}
如果發現什麼問題,歡迎指出來!!
相關推薦
【C語言】模擬實現strchr函式.即在一個字串中查詢一個字元第一次出現的位置並返回
//模擬實現strchr函式.即在一個字串中查詢一個字元第一次出現的位置並返回 #include <stdio.h> //#include <string.h> #includ
【c語言】模擬實現strchr函式,功能:在一個字串中查詢一個字元第一次出現的位置,如果沒有出現返回NULL
// 模擬實現strchr函式,功能:在一個字串中查詢一個字元第一次出現的位置,如果沒有出現返回NULL #include <stdio.h> #include <assert.h> char const* my_strchr(char cons
php 中查詢某個字元在字串中出現的所有位置
昨天回家,一個朋友討論起來查詢某個字元在指定的字串中所有出現的位置.. 於是,今天早上寫個方法試試 /** * 查詢某個字元在字串中出現的所有位置 * $str string 被查詢字串 * $char string 查詢字元 * $arr array() 返
【find_in_set】SQL中查詢某個特定字串出現在指定欄位(N子鏈)中的位置
在mysql資料庫中,我們會經常用到in語法,用來查詢某個欄位包含N子鏈中的一個或多個字串,如: select * from table where id in('1,2,3,4'); 但如果某個欄位本身是儲存的N子鏈,然後需要查出其中擁有某個特定值呢?這種需求在
純JS實現在一個字串b中查詢另一個字串a出現的所有位置,並且不使用字串的方法(遞迴)
問題:判斷字串A在中所有出現字串B中(長度大於1)的索引。不得使用字串方法indexof,substring等 有小夥伴在面試遇到了這個問題,乍一看如果使用使用字串方法indexof,substring,很簡單容易實現,但如果不使用這些方法,怎麼樣才能實現這個需求呢
SQL Server中查詢某個欄位中長度最短的一列資料
這個需求在查詢和篩選的時候會用到。我們可以看看下面兩種方法,均可。 至於效率問題自行研究試試。 方法一 SELECT top 1 ROW_ID,SPLIT_NO FROM CD_EMP WHERE
sqlserver 查詢某個字元在字串中第N次出現的位置
select dbo.fn_find('A',@str,1) as one, dbo.fn_find('A',@str,2) as two, dbo.fn_find('A',@str,3) as three, dbo.fn_find('A',@str,4) as four
js 判斷字串是否包含某字串,String物件中查詢子字元indexOf,查詢字串出現的次數split
varCts = "bblText"; if(Cts.indexOf("Text") > 0 ) { alert('Cts中包含Text字串'); } indexOf用法: 返回 String 物件內第一次出現子字串的字元位置。 strObj.
substring()的應用_查詢某個字元在字串中的具體位置
import java.util.Scanner;public class Dm{public static void main(String[] args){String str = "吃葡萄不吐葡萄
oracle,查詢某個欄位中,某字元出現的次數
SELECT LENGTHB(TRANSLATE('1,2,34,5',',12345',',')) FROM DUAL;SELECT LENGTHB('1,2,34,5')-LENGTHB(REPL
編寫一個方法,計算一個字串中,第一個不重複的字元在當前字串中的索引。即是這個字串唯一一個存在的字元第一個出現的位置
1.編寫一個方法,計算一個字串中,第一個不重複的字元在當前字串中的索引。即是這個字串唯一一個存在的字元第一個出現的位置 比如saaaaafss 輸出f saaaaaf 輸出 s public class S1 { public static void main(String args
ORACLE——在所有表、欄位中查詢某個字串並輸出表名和欄位名
什麼都不想說,直接上乾貨 declare v_Sql varchar2(2000); v_count number; begin for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME from
php正則表示式 剔除字串中的除了漢字的字元(只保留漢字)
1)utf-8的編碼格式,匹配中文程式碼如下: <?php $str = "utf-8下匹配出中文字串"; $preg = "/[\x{4e00}-\x{9fa5}]+/u"; if(preg_match_all($preg,$str,$mat
java中怎麼判斷一個字串中包含某個字元或字串
var Cts = "bblText"; if(Cts.indexOf("Text") > 0 ) { alert('Cts中包含Text字串'); } indexOf用法: 返回 String 物件內第一次出現子字串的字元位置。 strObj.ind
在java中清除某個字元後的所有字串
首先獲取字串:String str ="";然後獲取該字元的在字串裡的位置:int i = str.indexOf("字元");//首先獲取字元的位置最後呼叫字串擷取 :String newStr = str.substring(0,i);//再對字串進行擷取,獲得想要得到
plsql擷取字串欄位中的某個字元段
擷取字串字串s=" hello world ! (name) " 如果要擷取括號中的字串可以採取如下方法。 select substr(s,instr(s,'(')+1,instr(s,')')-instr(s,'(')-1) from table; 分析下:
查詢兩個字串中的相同的字元位置
class Solution { public: vector<int> findAnagrams(string s, string p) { vector<int>ve1(256,0); vector<int>ve2(256,0);
10-1. 在字串中查詢指定字元(15)
輸入一個字串S,再輸入一個字元c,要求在字串S中查詢字元c。如果找不到則輸出“Not found”;若找到則輸出字串S中從c開始的所有字元。 輸入格式: 輸入在第1行中給出一個不超過80個字元長度的、以回車結束的非空字串;在第2行中給出一個字元。 輸出格式: 在
hadoop中查詢某個字串所在的hdfs位置
在/home/test/2017-08-23這個目錄中查詢包含0001a794d86f0844的檔案 1、shell for迴圈 適用於hdfs容量比較小的的 for file in `hadoop fs -ls /home/test/2017-
mysql如何查詢某個資料表中時間最新的多條資料
通過t_test表的time欄位來比較。 SELECT a.* FROM t_test a WHERE NOT EXISTS(SELECT 1 FROM t_test b WHERE b.tim