1. 程式人生 > >正則表示式擷取字串兩字元間的內容

正則表示式擷取字串兩字元間的內容

一、問題

我有個字串比如a="abcdanmcadedcdeefako"那麼我怎麼能得到一個數組,其中陣列的各項是字母a和c的中間字元,即第一項是"b"第二項"nm"第三項"ded"

二、答案

下面是C#寫的,java也可以適用

static void Main(string[] args)
        {
            string a = "abcdanmcadedcdeefako";
                        Regex reg = new Regex("(?i)(?<=a)[^a]*(?=c)");//commend by danielinbiti
            MatchCollection mc = reg.Matches(a);
            foreach (Match m in mc)
            {
                Console.WriteLine(m.Value);
            }
        }

如果字串是"a1bcdAnmca1derdcdeefa1koc"

需要匹配a1和c之間,那麼正則表示式就是

(?i)(?<=a1)((?!a1).)*(?=c)
這裡主要用到了  預搜尋和反向預搜尋

相關推薦

表示式擷取字串字元內容

一、問題 我有個字串比如a="abcdanmcadedcdeefako"那麼我怎麼能得到一個數組,其中陣列的各項是字母a和c的中間字元,即第一項是"b"第二項"nm"第三項"ded" 二、答案 下面是C#寫的,java也可以適用 static void Main(stri

表示式擷取字串中的數字

方法一: String str="fsdfdsf12315f15哈12的"; String regEx="[^0-9]"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); String n

java-使用表示式擷取字串中的時間資訊

package com.yr.method; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @Aut

Java中用表示式擷取“()”之間的內容

Pattern pattern = Pattern.compile("(?<=\\()(.+?)(?=\\))"); Matcher matcher = pattern.matcher(匹配的內容

js表示式擷取字串中間的字串

一個最常用的場景 擷取兩個字串中間的字串   var str = "iid0000ffr";     var substr2 = str.match(/id(\S*)ff/);     alert(substr2); 你會發現逗號後面是你要的

JS_表示式_獲取指定字元之後指定字元之前的字串

一個常見的場景,獲取:標籤背景圖片連結: 如字串:var bgImg = "url(\"https://img30.360buyimg.com/sku/jfs/t26203/262/100869187/204098/1d1479e9/5b84b80bNf39db45f.jpg\")";   指

php表示式 剔除字串中的除了漢字的字元(只保留漢字)

1)utf-8的編碼格式,匹配中文程式碼如下: <?php     $str = "utf-8下匹配出中文字串";     $preg = "/[\x{4e00}-\x{9fa5}]+/u";     if(preg_match_all($preg,$str,$mat

利用表示式去除字串中非數字字元

string a ="bkbk9*2.6/7"; 1.去除字串中非數字 a = Regex.Replace(a, @"[^\d]*", "");//需用到引用usingSystem.Text.RegularExpressions; 去除後a="9267"; 2.去除字串中數

LeetCode 10 & 44 表示式匹配 & 萬用字元匹配 字串匹配問題

10 正則表示式匹配 給定一個字串 (s) 和一個字元模式 (p)。實現支援 ‘.’ 和 ‘*’ 的正則表示式匹配。 ‘.’ 匹配任意單個字元。 ‘*’ 匹配零個或多個前面的元素。 匹配應該覆蓋整個字串 (s) ,而不是部分字串。 說明: s 可能為

使用表示式去掉字串前面多餘的0和後面多餘的0

在專案開發過程中往往可能遇到需要去掉字串前面的0,或者末尾的0已進行方便的like查詢等操作: 去掉字串前面的0: QString str = "000000021"; str.remove(QRegExp("^(0+)"));//+:表示1次或多,^:匹配字串開頭或行頭 去

js表示式驗證字串只包括大小寫字母下劃線和-

背景說明 在之前的開發過程中為了校驗一個欄位只含有大小寫字母,下劃線和-花費了不少力氣才搞定,想著趕快寫一篇部落格來記錄下來,日後開發一定會遇到!! 程式碼實現 首先定義一個變數用來存放驗證字串的正則表示式:var regex=/^[A-Za-z0-9_\-]+$/ig;

在Python中使用表示式去掉字串裡的html標籤

有時候會獲得一些帶html標籤的字串,需要把html標籤去掉,獲得乾淨的字串,這時候可以使用正則表示式。 程式碼如下: import re htmeString = '''    <ul id="TopNav">    &nbs

表示式(預定義字元類演示)

public class Demo2_Regex { /** * [abc] a、b 或 c(簡單類) [^abc] 任何字元,除了 a、b 或 c(否定) [a-zA-Z] a 到 z 或 A 到 Z,兩頭的字母包括在內(範圍) [a-d[m-p]] a 到 d

使用表示式去掉字串前面和後面多餘的0

記錄一下小的工具程式碼 1、去掉字串前邊的0 String str = "000000021"; String newStr = str.replaceAll("^(0+)", ""); System.out.println(newStr); 2、去掉字串後邊的0 String str

表示式判斷字串是否為數字

IF cl_abap_matcher=>matches( pattern = '^(-?[1-9]\d*(\.\d*[1-9])?)|(-?0\.\d*[1-9])$' text = '1.01' ) = abap_true. WRITE '數字'. ELSE.

使用表示式替換字串

實現效果:    知識運用:   Regex類的Replace()方法:用於替換在指定字串內匹配正則式的字串為某字串   public static string Replace(string input,string pattern,string replacement)   input 

使用表示式字串進行拆分

實現效果:    知識運用:   Regex類的Split()方法:根據正則表示式模式對字串進行拆分     public static string[] Split(string input,string pattern)  //返回一個數組型別       input:要拆分的字串  patte

利用表示式進行字串替換(replace方法)

語法 str.replace(regexp|substr, newSubStr|function) 引數 regexp(pattern) 一個RegExp物件或者其字面量。該正則所匹配的內容會被第二個引數的返回值替換掉。 substr(pattern) 一個要被 newSubStr 替換

表示式擷取身份證號碼加密的方法

下面一段簡單的程式碼給大家介紹正則表示式擷取身份證號碼加密的方法,具體程式碼如下所示: 直接上程式碼: 1 2 3

常用的表示式大全(數字、字元、固定格式)

1.數字相關的正則表示式 數字:^[0-9]*$ n位定長的數字:^\d{n}$ m-n位之間的數字:^\d{m,n}$ 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(.[0-9]{1,2})