如何用正則表示式表示非“字串”
剛才遇到這樣一個問題,一個檔案目錄下有不少檔案,有些是.txt字尾結尾的,我想選出所有非.txt結尾的檔案來,linux下自然是想用grep來解決這個問題,首先:
ls|grep [^/.txt]$
但是發現這樣做是不對的,[]表示的是或,^表示的是否定,其實這是匹配了結尾非.、或非t、或非x的檔案,假設又一個檔名為a.x,這個檔案也將被排除掉,這不是我想要的結果。
其實可以用-v引數來做到這一點
ls|grep [/.txt]$ 是匹配所有後綴為.txt的檔案
ls|grep -v [/.txt]$ 則是匹配所有後綴不是.txt的檔案
不過,用-v是一個取巧的辦法,不是純的正則表示式的解決辦法,繼續探索ing。。。
ps:
在perl或支援perl的正則表示式的語言(如php)中,可以用前看宣告來做到這一點,正則表示式是:/.*(?!/.txt)$/
意思是匹配所有不以.txt結尾的名字
相關推薦
如何用正則表示式表示非“字串”
剛才遇到這樣一個問題,一個檔案目錄下有不少檔案,有些是.txt字尾結尾的,我想選出所有非.txt結尾的檔案來,linux下自然是想用grep來解決這個問題,首先: ls|grep [^/.txt]$ 但是發現這樣做是不對的,[]表示的是或,^表示的是否定,其實這是匹配了結尾
java用正則表示式判斷一個字串是否是車牌號
public boolean checkCarNumber(String content) { String pattern = "([京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊]{1}(([A-HJ-Z]{1}[A-HJ-NP-Z0-9]{5})|([A-HJ-
用正則表示式修改html字串的所有div的style樣式
最近專案中有一介面返回的一個欄位是html格式的字串,裡邊每個div中style的高度是固定的px,然後再手機端顯示的時候發現,div中的內容重疊了;效果圖如下: 對應的div如下: 由於高度固定,一行內容顯示不完的情況下,內容換行的時候就出現重疊; 現在一種解決方案就是將heigh
用正則表示式表示IP,埠和子網掩碼
一、IP地址的正則表示式 1、無任何判斷: /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/ 2、判斷0.0.0.0不符合IP書寫規範: /^(25[0-5]|2[
c# 用正則表示式獲取開始和結束字串中間的值
/// <summary> /// 獲得字串中開始和結束字串中間得值 /// </summary> /// <param name="str">字串</param> /// <param name="s">開始</param>
用python3.x正則表示式匹配中文字串
re.match('^[\u4e00-\u9fa5|,。;?]+\?$','你好哈人日你,媽我。我?;們我為啥說在張志這?') 這演示了簡體,繁體,中文標點符號等等。可以看出python3.x對於中文字串匹配是可以執行得很好滴<pre name="code" cla
Objective-C用正則表示式判斷字串是否為手機號、郵箱、身份證號
用正則表示式判斷字串是否為手機號: - (BOOL)isPhoneNumber:(NSString *)str { NSString * MOBILE = @"^1(3[0-9]|5[0-
QT 用正則表示式從tableView中篩選出某一日期範圍內的資料
QDate date1,date2; date1=ui->dateEdit_2->date();//提取開始時間 date2=ui->dateEdit_3->date();//提取結束時間 data_filter->
Java用正則表示式判斷輸入的電話號碼格式是否正確
import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; /** *三大運營商號碼均可驗證(不含衛星通訊1349) */ p
python 正則表示式找出字串中的純數字
1、簡單的做法 >>> import re >>> re.findall(r'\d+', 'hello 42 I'm a 32 string 30') ['42', '32', '30'] 然而,這種做法使得字串中非純數字也會識別 >
怎麼用正則表示式限制輸入框輸入數字的範圍(數字範圍是50-1000),怎麼限制輸入框輸入的數字是以9506開頭的
轉自 https://zhidao.baidu.com/question/1829801257322895700.html <input type="text" onkeyup="var v=this.value||'';v=v.replace(/[^\d]/g,'')
劍指Offer 52. 正則表示式匹配 (字串)
題目描述 請實現一個函式用來匹配包括'.'和'*'的正則表示式。模式中的字元'.'表示任意一個字元,而'*'表示它前面的字元可以出現任意次(包含0次)。 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串"aaa"與模式"a.a"和"ab*ac*a"匹配,但是與"aa.a"和"ab*a"均不匹配 題目地
正則表示式中常用字串方法
1,search()用於檢索字串中指定的子字串,或檢索與正則表示式相匹配的子字串,並返回子串的起始位置。search()方法不支援全域性搜尋,因為會忽略正則表示式引數的標識g,並且也忽略了regexp的lastIndex屬性,總是從字串的開始位置進行檢索,所以它會總是返回str的第一個匹配的位置。 &n
Shell正則表示式 & Grep正則表示式 & shell字串處理
摘自:https://www.cnblogs.com/hoji-real/articles/2311214.html Shell正則表示式 一個正則表示式就是由普通字元(例如字元 a 到 z)以及特殊字元(稱為元字元)組成的文字模式。該模式描述在查詢文字主體時待匹配的一個或
鬥圖網鬥圖全站爬取(用正則表示式re)
import re import requests import os class doutu_spyder(): first_url=[] first_name=[] headers=
PHP用正則批量替換Img中src內容,用正則表示式獲取圖片路徑實現縮圖功能
/** * 圖片地址替換成壓縮URL * @param string $content 內容 * @param string $suffix 字尾 */ function get_img_thumb_url($content="",$suffix="!c550x260.jpg") { // by
notepad++ 等用正則表示式自動新增sql引號的技巧
轉:https://www.jb51.net/article/73605.htm notepad正則表示式新增sql引號,具體內容請看下文詳解。 一般sql語句會經常用到給括號裡的內容新增引號,sql如下 ? 1 2 3 4 5 6 7 8 S
正則表示式判斷非零開頭的正整數輸入
// 正則表示式判斷非零開頭的正整數輸入,非法輸入將其替換成1 $('#buyNum').on('input', function() { var reg = /^[1-9]\d*$/; if (!reg.test($(this).val())) { $
用正則表示式實現 計算器
#!/usr/bin/env python # coding:utf-8 import re def dealwith(express): express.replace('+-','-') express.replace('--','+') return express d
Python 用正則表示式一次替換文章中所有特殊符號,如“-,$()#+&*”之類
一個簡單的正則表示式,可能會起大作用。比如說字符集就是這樣。一篇文章如果有各種亂碼,就可以用這種方法去除。如去除“-,$()#+&*”之類符號是很方便的。按照查詢、分割、替換的套路再做一做這樣的練習。今天晚了,後續還要操作檔案來完善這一點。 import re