1. 程式人生 > >利用正則表示式反向選擇資料

利用正則表示式反向選擇資料

最近有朋友問如何在檔案中選擇不包含諸如1900、1901、……1999字串的行,目標檔案中所有資料都是由數字字元組成。
如果使用 grep 這樣的工具,只用寫很一個非常簡單的正則表示式就能解決問題:
grep -v '19/d/d' target_file
grep 的 -v 選項表示選擇 target_file 中不匹配目標正則表示式的行。
對於諸如 Java 或者 Ruby 這樣的程式設計語言,則沒有提供類似的引數。我們需要直接使用正則表示式來匹配不包含以上字串的行。解決這個問題的正則表示式如下:
^((?!19/d/d)/d)+$
其中 (?!19/d/d) 的作用是,一旦正則表示式引擎發現行內包含有符合 19/d/d 模式的資料,即判斷該行不匹配此模式;如果一直沒有發現符合 19/d/d 模式的資料,而且所有資料都是數字字元,則該行資料匹配此模式。這樣就能選取到目標檔案中所有不包含以上字串的行。

正則表示式是處理文字時的一個強有力的工具。最初的正則表示式出現於理論電腦科學的自動控制理論和形式語言理論中。如果需要學習正則表示式,倘若只是從網路上摘抄一星半點的例項或者讀一些30分鐘速成教程,是無法真正掌握這個強大工具的。有關正則表示式方面的最好的書籍之一應該是
Jeffery Friedl
《Master Regular Expressions》,國內既有第二版的影印版,也有餘晟翻譯的第三版譯本

相關推薦

利用表示式反向選擇資料

最近有朋友問如何在檔案中選擇不包含諸如1900、1901、……1999字串的行,目標檔案中所有資料都是由數字字元組成。如果使用 grep 這樣的工具,只用寫很一個非常簡單的正則表示式就能解決問題:grep -v '19/d/d' target_file grep 的 -v 選

java利用表示式提取年月日資料

package com.amarsoft.court.app.util; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.regex

Python中利用表示式用逗號分割資料,但是忽略引號中的逗號的方法

一.問題描述: 我在做一個網站搜尋記錄的分割工作,原始資料如下: x= '{"嬌妻有毒路明": "0.013", "嬌妻有毒%2c陸少寵上癮": "0.078",\ "嬌妻有毒老公你放鬆點": "0.021", "嬌妻有毒陸明白芬": "0.011", "嬌妻有毒:陸少,寵上癮": "0.

利用表示式處理爬取的今日頭條內容資料(Python爬蟲資料清洗)

本次要處理的是抓取的頭條內容,內容如下: content = '''content: '<div><blockquote><p><strong>想要更多科技類資訊,歡迎關注公眾號“

Web Scraper 高階用法——利用表示式篩選文字資訊 | 簡易資料分析 17

![](https://image-1255652541.cos.ap-shanghai.myqcloud.com/images/20200317225112.png) 這是簡易資料分析系列的**第 17 篇**文章。 學習了這麼多課,我想大家已經發現了,web scraper 主要是用來爬取**

根據表示式反向生成對應的字串現有工具(包)總結

為什麼會調研這塊知識點?在做測試的時候,資料的自動生成,做自動mock都會用到按規則自動生成資料,所以了~~ 其中有部分是前輩們總結的直接拿來了,多種語言的,但我本身關注更多的是java、python和go,其他語言備用 總結如下: python Exrex, Pyt

js利用表示式修改某個字元

   js中由於沒有replaceAll()方法,需要替換字串的某些字元時候,得重複呼叫replace()方法,很是累贅。  可以採用正則表示式處理,如以下程式把toolsStartTime中的‘-’替換為‘/’。     var

Python爬蟲之使用表示式抓取資料

目錄 匹配標籤 匹配title標籤 a標籤 table標籤 匹配標籤裡面的屬性 匹配a標籤裡面的URL 匹配img標籤裡的 src 相關文章:Linux中的正則表示式             &nbs

JS利用表示式校驗手機號

JS利用正則表示式校驗手機號 緒         由於專案需求,需要在前端實現手機號碼的校驗。當然了,對於基本的格式校驗應該放在客戶端進行,而不需要再將待校驗的手機號傳送至服務端,在服務端完成校驗,然後將校驗結果返回給客戶端,客戶端根據返回的結果再進

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

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

js利用表示式獲取 / 設定URL引數

function getUrlParam(url, key) {      var reg = new RegExp("[?&]" + key + "=([^&]+)", "gmi");      if (reg.test(

Python爬蟲-利用表示式爬取貓眼電影

利用正則來爬去貓眼電影 =================================== ===================================================== 1 ''' 2 利用正則來爬去貓眼電影 3 1. url: http://maoya

JSON的使用、利用表示式解決不定型別返回Json格式

介紹 作為移動端開發者,和伺服器的通訊是少不了了。下面我總結一我在開發中遇到有關json的問題 一般的Json 在我剛入門的時候,在公司的寫程式碼當時的網路返回也不復雜,10個欄位以內,基本上熟悉Json的固定格式,手動寫Bean接收資料,只要用心欄位

AngularJS進階(十三)JS利用表示式校驗手機號

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興! JS利用正則表示式校驗手機號 緒         由於專案需求,需要在前端實現手機號碼的校驗。當然了,對於基本的格式校驗應該放在客戶端進行,而不需要再將待校驗的手機號傳送至服務端,在服務

java利用表示式提取字串中的整數和小數部分

最近開發遇到一個新的東西,就是前端傳過來一個字串,需要將裡面的數字提取出來,倒騰了一天,最後還是沒有倒騰出來,最後還是借鑑大佬的方法。記錄一下。 首先是前端傳來的字串“小明通過掃碼向你付款100000.566元”其中暱稱和金額不是固定的,其他是固定的。 於是便考慮使用“通過掃碼向你付

EXCEL VBA 使用表示式清洗替換資料

在EXCEL表內遇到有規律性的資料需要提取或者替換時,比如在資料中提取時間,身份證號碼等,EXCEL內自帶的查詢替換就難以實現,我們可以利用VBA適用正則表示式去對資料進行匹配。 什麼是正則表示式? 正則表示式,又稱規則表示式。(英語:Regular Expression,在程式碼中常簡

Java開發筆記(三十八)利用表示式校驗字串

前面多次提到了正則串、正則表示式,那麼正則表示式究竟是符合什麼定義的字串呢?正則表示式是程式語言處理字串格式的一種邏輯式子,它利用若干保留字元定義了形形色色的匹配規則,從而通過一個式子來覆蓋滿足了上述規則的所有字串。正則表示式的保留字元主要有:圓括號、方括號、花括號、豎線、橫線、點號、加

PHP利用表示式實現手機號碼中間4位用星號替換顯示

因為需要為客戶保持隱私,所以手機號碼不能完全顯示在網站上,但是又不能不顯示,所以就很多網站想到了顯示但是不完整顯示,在上面用星號替換部分顯示,其實做到這個很簡單,用正則替換顯示其中的一部分即可。 PHP利用正則表示式實現手機號碼中間4位用星號替換顯示功能,請看以下原始碼: Metho

jmeter表示式獲取指定資料

//此文章為記錄怎麼從伺服器返回資料中獲取指定的第幾個資料。//返回的資料//獲取的資料備註:查詢過文章,文章顯示在模板後面的$x$的x代表獲取第幾個資料。          但是在實際使用中發現:匹配數字代表獲取第幾個資料,當為0時,為隨機;當為1時,顯示第1個;當為2時,

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

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