自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實(shí)現(xiàn)正則表達(dá)式匹配任意字符解析

開發(fā) 后端
正則表達(dá)式匹配任意字符的實(shí)現(xiàn)需要如何的操作呢?操作的過程中需要注意什么呢?那么本文就向你介紹這么強(qiáng)大的正則表達(dá)式匹配任意字符的具體內(nèi)容。

我們?nèi)绾螌?shí)現(xiàn)正則表達(dá)式匹配任意字符的效果呢?這個過程需要使用什么呢?具體的操作需要注意那些方面呢?那么現(xiàn)在我們就來揭開這神秘的一面:

實(shí)現(xiàn)正則表達(dá)式匹配任意字符的真相:

使用“.”匹配幾乎任意字符。在正則表達(dá)式中,“.”是最常用的符號之一。不幸的是,它也是最容易被誤用的符號之一。

“.”匹配一個單個的字符而不用關(guān)心被匹配的字符是什么。唯一的例外是新行符。在本教程中談到的引擎,缺省情況下都是不匹配新行符的。因此在缺省情況下,“.”等于是字符集[^\n\r](Window)或[^\n]( Unix)的簡寫。

這個例外是因?yàn)闅v史的原因。因?yàn)樵缙谑褂谜齽t表達(dá)式的工具是基于行的。它們都是一行一行的讀入一個文件,將正則表達(dá)式分別應(yīng)用到每一行上去。在這些工具中,字符串是不包含新行符的。因此“.”也就從不匹配新行符。

現(xiàn)代的工具和語言能夠?qū)⒄齽t表達(dá)式應(yīng)用到很大的字符串甚至整個文件上去。本教程討論的所有正則表達(dá)式實(shí)現(xiàn)都提供一個選項(xiàng),可以使“.”匹配所有的字符,包括新行符。在RegexBuddy, EditPad Pro或PowerGREP等工具中,你可以簡單的選中“點(diǎn)號匹配新行符”。在Perl中,“.”可以匹配新行符的模式被稱作“單行模式”。很不幸,這是一個很容易混淆的名詞。因?yàn)檫€有所謂“多行模式”。多行模式只影響行首行尾的錨定(anchor),而單行模式只影響“.”。

其他語言和正則表達(dá)式庫也采用了Perl的術(shù)語定義。當(dāng)在.NET Framework中使用正則表達(dá)式類時,你可以用類似下面的語句來激活單行模式:Regex.Match(“string”,”regex”,RegexOptions.SingleLine)

實(shí)現(xiàn)正則表達(dá)式匹配任意字符的一點(diǎn)總結(jié):

◆保守的使用點(diǎn)號“.”

點(diǎn)號可以說是最強(qiáng)大的元字符。它允許你偷懶:用一個點(diǎn)號,就能匹配幾乎所有的字符。但是問題在于,它也常常會匹配不該匹配的字符。

我會以一個簡單的例子來說明。讓我們看看如何匹配一個具有“mm/dd/yy”格式的日期,但是我們想允許用戶來選擇分隔符。很快能想到的一個方案是<<\d\d.\d\d.\d\d>>??瓷先ニ芷ヅ淙掌凇?2/12/03”。問題在于02512703也會被認(rèn)為是一個有效的日期。

<<\d\d[-/.]\d\d[-/.]\d\d>>看上去是一個好一點(diǎn)的解決方案。記住點(diǎn)號在一個字符集里不是元字符。這個方案遠(yuǎn)不夠完善,它會匹配“99/99/99”。而<<[0-1]\d[-/.][0-3]\d[-/.]\d\d>>又更進(jìn)一步。盡管他也會匹配“19/39/99”。你想要你的正則表達(dá)式達(dá)到如何完美的程度取決于你想達(dá)到什么樣的目的。如果你想校驗(yàn)用戶輸入,則需要盡可能的完美。如果你只是想分析一個已知的源,并且我們知道沒有錯誤的數(shù)據(jù),用一個比較好的正則表達(dá)式來匹配你想要搜尋的字符就已經(jīng)足夠。

實(shí)現(xiàn)正則表達(dá)式匹配任意字符的相關(guān)內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)實(shí)現(xiàn)正則表達(dá)式匹配任意字符有所幫助。

【編輯推薦】

  1. 正則表達(dá)式匹配字符串實(shí)現(xiàn)詳解
  2. 正則表達(dá)式入門必學(xué)的星星點(diǎn)點(diǎn)
  3. 正則表達(dá)式引擎淺析
  4. 正則表達(dá)式字符集探究
  5. ?*或+正則表達(dá)式使用詳解
責(zé)任編輯:仲衡 來源: IT168
相關(guān)推薦

2009-09-16 18:08:14

正則表達(dá)式匹配單詞

2009-09-16 17:02:15

正則表達(dá)式匹配字符串

2009-09-16 16:48:03

正則表達(dá)式匹配數(shù)字

2009-09-16 10:59:24

PHP正則表達(dá)式元字符

2009-09-16 13:24:30

PHP正則表達(dá)式匹配

2009-09-16 16:22:04

正則表達(dá)式匹配

2010-07-14 09:37:46

Perl正則表達(dá)式

2011-06-16 15:28:31

正則表達(dá)式

2009-09-16 13:53:17

PHP正則表達(dá)式匹配

2010-07-21 10:43:25

Perl正則表達(dá)式匹配

2010-07-28 11:06:41

Flex正則表達(dá)式

2010-08-09 13:58:59

Flex正則表達(dá)式

2010-07-13 17:03:53

Perl正則表達(dá)式

2018-09-27 15:25:08

正則表達(dá)式前端

2021-12-03 08:50:25

LeetCode正則表達(dá)式算法

2020-09-04 09:16:04

Python正則表達(dá)式虛擬機(jī)

2010-08-09 13:51:27

Flex正則表達(dá)式

2009-08-14 17:44:46

C#中使用正則表達(dá)式匹

2010-03-04 15:20:20

Ubuntu Patt

2010-03-15 16:21:28

Python正則表達(dá)式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號