大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Unix Shell正則表達式

Unix Shell正則表達式

更新時間:2022-07-01 09:50:30 來源:動力節點 瀏覽1262次

常用表達

正則表達式 (regex) 是一種可用于搜索和替換的文本模式。正則表達式類似于通配符中使用的 Unix 通配符,但功能更強大,可用于搜索、替換和驗證文本。

Java正則表達式用于許多 Unix 命令(例如findand grep)以及大多數編程語言(例如 R 和 Python)中。

我們僅在此處顯示基本用法以幫助您入門。要進行練習,請先花一些時間在https://regex101.com上更好地了解如何使用正則表達式,然后了解如何在文本編輯器中使用它們進行搜索和替換。

匹配字符

我們將練習使用grep. 如果匹配成功,則返回該行文本;否則什么都沒有。

In [1]:
grep --help | head -n 20
用法:grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
        [-e 模式] [-f 文件] [--binary-files=值] [--color=when]
        [--context[=num]] [--directories=action] [--label] [--line-buffered]
        [--null] [模式] [文件 ...]

文字字符匹配

In [2]:
echo abcd | grep abcd
A B C D
In [3]:
echo abcd | grep bc
A B C D

不匹配

In [4]:
echo abcd | grep ac

不區分大小寫的匹配

In [5]:
echo abcd | grep -i A
A B C D
In [6]:
echo abcd | grep A

匹配任何單個字符

恰好匹配一個字符。

In [7]:
echo abcd | grep a.c
A B C D
In [8]:
echo abcd | grep a..c
In [9]:
echo abcd | grep a..d
A B C D

匹配字符集

In [10]:
echo a2b | grep [0123456789]
a2b
In [11]:
echo a2b | grep [0-9]
a2b
In [12]:
echo a2b | grep [abc]
a2b
In [13]:
echo a2b | grep [def]
In [14]:
echo a2b | grep [a-z]
a2b
In [15]:
echo a2b | grep [A-Z]

例外

字符集中的^表示匹配集合中不存在的任何內容。

In [16]:
echo a2b | grep [A-Z]
In [17]:
echo a2b | grep [^A-Z]
a2b

預定義的字符集

許多有用的字符集(例如所有數字)已被預定義為 可以在正則表達式中使用的字符類。字符類在 Unix shell 中有點笨拙,但在編程語言中經常使用更簡單的形式(例如,' :raw-latex:`\d` '而不是 '[:digit:]')。

In [18]:
echo a2b | grep ['[:alpha:]']
a2b
In [19]:
echo a2b | grep ['[:digit:]']
a2b
In [20]:
echo a2b | grep ['[:punct:]']
In [21]:
echo a2,b | grep ['[:punct:]']
a2,b

替代表達

我們在這里使用 -E 參數來避免必須轉義特殊字符

-E, --extended-regexp
        Interpret pattern as an extended regular expression (i.e. force
        grep to behave as egrep).'
In [22]:
echo cat | grep -E '(cat|dog)'
貓

沒有-E

我們需要轉義特殊字符(和。|)

In [23]:
echo cat | grep '\(cat\|dog\)'
貓

我們也愛狗

In [24]:
echo dog | grep -E '(cat|dog)'
狗

但不是狐貍

In [25]:
echo fox | grep -E '(cat|dog)'

小心 - 使用方括號意味著不同的東西

In [26]:
echo fox | grep -E '[cat|dog]'
狐貍

字符集修飾符

錨點

^表示行首和$行尾。

In [27]:
echo abcd | grep ^ab
A B C D
In [28]:
echo abcd | grep ab$
In [29]:
echo abcd | grep ^cd
In [30]:
echo abcd | grep cd$
A B C D

重復字符

+匹配一個或多個前面的字符集

'*' 匹配零個或多個前面的字符集

'{m, n}' 匹配前面字符集的 m 和 n 次重復。

In [31]:
echo abbbcd | grep abcd
In [32]:
echo abbbcd | grep -E ab+cd
abbbcd
In [33]:
echo abbbcd | grep -E ab*cd
abbbcd
In [34]:
echo abbbcd | grep -E 'ab{1,5}cd'
abbbcd
In [35]:
echo abbbcd | grep -E a[bc]+d
abbbcd

將單詞與單詞邊界匹配

\<并\>指出單詞邊界。也就是說,\只會匹配or但不匹配or 。foo barbar foofoobarbarfoo

In [36]:
echo 'other ones go together' | grep 'the'
其他的一起去
In [37]:
echo 'other ones go together' | grep '\<the\>'
In [38]:
echo 'other ones go together' | grep '\<other\>'
其他的一起去

捕獲組和反向引用

In [39]:
echo "123_456_123_456" | grep -E '([0-9]+).*\1'
123_456_123_456
In [40]:
echo "123_456_123_456" | grep -E '([0-9]+)_([0-9]+)_\1_\2'
123_456_123_456
In [41]:
echo "123_456_123_123" | grep -E '([0-9]+)_([0-9]+)_\1_\2'

以上就是關于“Unix Shell正則表達式”的介紹,如果大家想了解更多相關知識,可以關注一下動力節點的Java在線學習,里面的課程內容細致全面,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产波多野结衣中文在线播放 | 国产亚洲精品国产一区 | 亚洲一级黄色大片 | 精品久久久久久久久久久久久久久 | 天天se天天cao | 天天综合网天天做天天受 | 呦呦国产 | 国产成人精品免费视频网页大全 | 伊人天伊人天天网综合视频 | 日日碰狠狠添天天爽对白 | 日韩免费一区二区 | 这里只有精品在线播放 | 国产毛片久久久久久国产毛片 | 狠狠久久综合 | 91精品免费国产高清在线 | 99ri在线视频 | 四虎免费网站 | 日本人又黄又爽免费视频 | 欧美成人性色生活片天天看 | 国产成人精品综合网站 | 久久国产精品99精品国产 | 国产成人免费片在线观看 | 成人国产精品久久久免费 | 奇米影视888 | 狠狠色噜噜综合社区 | 一级女性全黄生活片看看 | 2021在线永久免费视频 | 亚洲精品免费日日日夜夜夜夜 | 成人在线小视频 | 四虎www成人影院免费观看 | 午夜视频在线观看国产www | 91在线免费看 | 婷婷精品进入 | 国产精品视频网 | 亚洲狠狠97婷婷综合久久久久 | 国产成人综合久久综合 | 国产中文字幕视频在线观看 | 国产情侣偷国语对白 | 国产成人精品免费影视大全 | 天天干视频在线 | 国产九九热视频 |