一、正则表达式匹配换行符和空格
正则表达式是一种用于字符串匹配的语法,可以匹配各种形式的文本,包括换行符和空格等特殊字符。在正则表达式中,换行符表示为 "\n",而空格则表示为 "\s"。
比如,要匹配一个字符串中所有的换行符和空格,可以使用如下的正则表达式:
const regex = /[\n\s]+/g; const str = 'hello world\n你好 世界'; const matches = str.match(regex); console.log(matches); // Output: [' ', '\n', ' ', ' ']
上面的代码中,使用了一个字符组("[ ]")来匹配 "\n" 和 "\s",加上 "+" 表示匹配一个或多个这样的字符,最后使用 "g" 修饰符表示全局匹配。
二、正则表达式换行符
在正则表达式中,换行符有不同的表示方式。除了上面提到的 "\n" 之外,还可以使用 "\r" 和 "\r\n" 来表示换行符。
比如,要匹配一个字符串中所有的换行符,可以使用如下的正则表达式:
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",加上 "+" 表示匹配一个或多个这样的字符。
三、正则表达式匹配指定字符串
正则表达式不仅可以匹配特定的字符,还可以匹配指定的字符串。比如,要匹配一个字符串中所有以 "http" 开头的 URL,可以使用如下的正则表达式:
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']
上面的代码中,使用了一个字符组来匹配 "http" 和 "https",加上 ":" 和 "//" 表示匹配 URL 协议和路径,最后使用 "[^\s]*" 表示匹配任意非空白字符,直到空格或行尾。
四、正则表达式匹配字符串
除了匹配特定的字符和字符串之外,正则表达式还可以匹配整个字符串。比如,要匹配一个字符串是否符合邮件地址的格式,可以使用如下的正则表达式:
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
上面的代码中,使用了 "^" 和 "$" 分别表示字符串的开头和结尾,使用了 "+" 和 "\." 表示匹配字符和点号,使用了 "{2,}" 表示匹配至少两个字符,这样可以有效地判断一个字符串是否符合邮件地址的格式。
五、正则表达式匹配多行
正则表达式默认只匹配单行文本,即不会跨行匹配。如果需要匹配多行文本,可以使用 "m" 修饰符。
比如,要匹配一个字符串中所有以 "#" 开头的行,可以使用如下的正则表达式:
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" 修饰符表示匹配多行文本,最后使用 ".*" 表示匹配任意字符。
六、正则表达式匹配回车换行
在 Windows 系统中,回车换行通常用 "\r\n" 表示,而在 Unix 或 Linux 系统中,只用 "\n" 表示。为了匹配不同类型的回车换行,可以使用如下的正则表达式:
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",加上 "+" 表示匹配一个或多个这样的字符。
七、正则表达式匹配除了换行符
有时候需要匹配除了换行符之外的所有字符,可以使用如下的正则表达式:
const regex = /[^\r\n]+/; const str = 'hello\nworld\r\n你好\r世界'; const matches = str.match(regex); console.log(matches); // Output: 'hello'
上面的代码中,使用了 "^" 表示匹配除了换行符之外的任意字符。
八、正则表达式换行符怎么表示
在正则表达式中,换行符可以用 "\n"、"\r" 或 "\r\n" 表示。
九、换行符的正则表达式
换行符的正则表达式可以使用 "/[\n\r]/" 或 "/\r?\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']