一、正則表達(dá)式匹配換行符和空格
正則表達(dá)式是一種用于字符串匹配的語法,可以匹配各種形式的文本,包括換行符和空格等特殊字符。在正則表達(dá)式中,換行符表示為 "\n",而空格則表示為 "\s"。
比如,要匹配一個(gè)字符串中所有的換行符和空格,可以使用如下的正則表達(dá)式:
const regex = /[\n\s]+g; const str = 'hello world\n你好 世界'; const matches = str.match(regex); console.log(matches); // Output: [' ', '\n', ' ', ' ']
上面的代碼中,使用了一個(gè)字符組("[ ]")來匹配 "\n" 和 "\s",加上 "+" 表示匹配一個(gè)或多個(gè)這樣的字符,最后使用 "g" 修飾符表示全局匹配。
二、正則表達(dá)式換行符
在正則表達(dá)式中,換行符有不同的表示方式。除了上面提到的 "\n" 之外,還可以使用 "\r" 和 "\r\n" 來表示換行符。
比如,要匹配一個(gè)字符串中所有的換行符,可以使用如下的正則表達(dá)式:
const regex = /[\r\n]+g; const str = 'hello\nworld\r\n你好\r世界'; const matches = str.match(regex); console.log(matches); // Output: ['\n', '\r\n', '\r']
上面的代碼中,使用了一個(gè)字符組來匹配 "\r" 和 "\n",加上 "+" 表示匹配一個(gè)或多個(gè)這樣的字符。
三、正則表達(dá)式匹配指定字符串
正則表達(dá)式不僅可以匹配特定的字符,還可以匹配指定的字符串。比如,要匹配一個(gè)字符串中所有以 "http" 開頭的 URL,可以使用如下的正則表達(dá)式:
const regex = /(http|https):\/\/[^\s]*/g; const str = 'Visit our website at https://www.example.com'; const matches = str.match(regex); console.log(matches); // Output: ['https://www.example.com']
上面的代碼中,使用了一個(gè)字符組來匹配 "http" 和 "https",加上 ":" 和 "http://" 表示匹配 URL 協(xié)議和路徑,最后使用 "[^\s]*" 表示匹配任意非空白字符,直到空格或行尾。
四、正則表達(dá)式匹配字符串
除了匹配特定的字符和字符串之外,正則表達(dá)式還可以匹配整個(gè)字符串。比如,要匹配一個(gè)字符串是否符合郵件地址的格式,可以使用如下的正則表達(dá)式:
const regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; const email = 'example@example.com'; const isValid = regex.test(email); console.log(isValid); // Output: true
上面的代碼中,使用了 "^" 和 "$" 分別表示字符串的開頭和結(jié)尾,使用了 "+" 和 "\." 表示匹配字符和點(diǎn)號,使用了 "{2,}" 表示匹配至少兩個(gè)字符,這樣可以有效地判斷一個(gè)字符串是否符合郵件地址的格式。
五、正則表達(dá)式匹配多行
正則表達(dá)式默認(rèn)只匹配單行文本,即不會(huì)跨行匹配。如果需要匹配多行文本,可以使用 "m" 修飾符。
比如,要匹配一個(gè)字符串中所有以 "#" 開頭的行,可以使用如下的正則表達(dá)式:
const regex = /^#.*$/gm; const text = '# This is a header\n\n# This is another header\n\nThis is some text'; const matches = text.match(regex); console.log(matches); // Output: ['# This is a header', '# This is another header']
上面的代碼中,使用了 "^" 和 "$" 分別表示行首和行尾,加上 "m" 修飾符表示匹配多行文本,最后使用 ".*" 表示匹配任意字符。
六、正則表達(dá)式匹配回車換行
在 Windows 系統(tǒng)中,回車換行通常用 "\r\n" 表示,而在 Unix 或 Linux 系統(tǒng)中,只用 "\n" 表示。為了匹配不同類型的回車換行,可以使用如下的正則表達(dá)式:
const regex = /[\r\n]+g; const str = 'hello\nworld\r\n你好\r世界'; const matches = str.match(regex); console.log(matches); // Output: ['\n', '\r\n', '\r']
上面的代碼中,使用了字符組來匹配 "\r" 和 "\n",加上 "+" 表示匹配一個(gè)或多個(gè)這樣的字符。
七、正則表達(dá)式匹配除了換行符
有時(shí)候需要匹配除了換行符之外的所有字符,可以使用如下的正則表達(dá)式:
const regex = /[^\r\n]+; const str = 'hello\nworld\r\n你好\r世界'; const matches = str.match(regex); console.log(matches); // Output: 'hello'
上面的代碼中,使用了 "^" 表示匹配除了換行符之外的任意字符。
八、正則表達(dá)式換行符怎么表示
在正則表達(dá)式中,換行符可以用 "\n"、"\r" 或 "\r\n" 表示。
九、換行符的正則表達(dá)式
換行符的正則表達(dá)式可以使用 "/[\n\r]/" 或 "/\r?\n/" 表示。
十、正則表達(dá)式過長怎么換行
如果正則表達(dá)式太長,可以使用反斜線 "\" 換行,實(shí)現(xiàn)代碼的可讀性。
const regex = /([a-z]+)[\r\n]/\ ([0-9]+)/; const str = 'hello\n123'; const matches = str.match(regex); console.log(matches); // Output: ['hello\n123', 'hello', '123']