正则表达式基础

简介: 正则表达式基础

// 根据正则 \W 查找[a-z][A-Z][0-9] 以外


let str = 'asgdas-awja.ugsdiuaf'
 let reg = new RegExp(/\W/)
 document.write(str.split(reg))

// 根据正则查找符合条件的字符串

// * = {0,}

// + = {1,}

// ? = {0, 1}


let str = 'cccainiao'
 let reg = /c{2,3}?/
 let result = reg.exec(str)
 document.write(result)

// 正则匹配开头结尾  ^(开头)  $(结尾)


let str = '1abc2'
  let reg = /^1/
  let reg2 = /2$/
  let result = reg.exec(str)
  let result2 = reg2.exec(str)
  document.write(result, '<br />')
  console.log(result)
  document.write(result2)
  console.log(result2)

// 匹配除了 /n 换行符以外的所有字符  /./,  如果需要查询全部字符,需在后面加+


let str = 'cainiao';
let reg = /.+/;
let result = reg.exec(str);
document.write(result);

// 正则表达式中的或  |


let str = 'ab7cdefg';
// 匹配开头为*后面,除了/n换行符以外的全部字符 (.+)
let reg = /^a.+/;
let result = reg.exec(str);
document.write(result);

// 开头必须是字母, 后面可以是字母或者下划线


let str = 'as15ce1cf51ev';
let reg = /^[a-zA-Z][a-zA-Z0-9_]+/;
let result = reg.exec(str);
document.write(result);

// [^*] 表示非


let str = '1abcdef';
let reg = /^[^abc].+/;
let result = reg.exec(str);
document.write(result);

// \b 边界 \B 非边界


let str = '1abcdef';
let reg = /\b1.+/;
// let str = 'cac'
// let reg = /\Da.+/
let result = reg.exec(str);
document.write(result);

// \d 数字 \D 非数字


let str = 'ghd1'
let reg = /\d/;
// let str = '2abcdef';
// let reg = /\D.+/
let result = reg.exec(str);
document.write(result);

// \f匹配换页符,\n匹配换行符,\r匹配回车,\t匹配制表符,\v匹配垂直制表符

// \s 匹配单个空格,等同于[\f\n\r\t\v]

// \S 表示非空格字符

// \w 代表单词字符,等同于[a-zA-Z0-9_]

// \W 表示非单词字符,等同于[^a-zA-Z0-9_]

// /pattern/g  全局匹配

// /pattern/i  不区分大小写

// /pattern/m  作用: 修改^ 和 $ 的作用, 让它们分别表示行首和行尾


// 正则反向引用 \w 返回a, 此时的\1是反向引用,它表示的是第一个括号内的字正则表达式匹配的内容,第一个括号里面的(\w)匹配了a,因此\1就同样表示a了,在余下的字符串里自然找不到a了


let str = 'abc';
 let reg = /(\w)\1/;
 let result = reg.exec(str);
 document.write(result);

// 不记录子正则表达式的匹配结果 /?:pattern/ 忽略  

---使用反向引用\1返回null, ?:不记录匹配内容---


let reg = /^(?:b|c).+/;
let str='bbs.blueidea.com';
let result = reg.exec(str);
document.write(result);

// 正向预查 例子: cainiao1, cainiao2, /cainiao(?=2)/,就可查询到cainiao2


let str = 'cainiao2';
let reg = /cainiao(?=2)/;  // ?=并不参与真正的匹配,只是检查一下后面的字符是否符合规则
let result = reg.exec(str);
document.write(result);

// 正向预查取反 /?!pattern/, 正好和 ?= 相反, 要求字符串后面不能为某个pattern

// 字符正确返回 null, 字符不符合要求返回 idea


let str = 'ideastr';
let reg = /idea(?!str)/;
let result = reg.exec(str);
document.write(result);

// 判断字符串是否全是数字可以用 /^\d*\d$/, 也可以用 /^\d[0-9]*%/表示

相关文章
|
JavaScript 前端开发 Java
《正则表达式经典实例(第2版)》——1.3 正则表达式工具
除非已经拥有了相当长的使用正则表达式编程的经验,否则建议你先在一个工具中试验一下正则表达式,而不是直接在源代码中使用它们。本章和第2章中提供的正则表达式示例都是原始正则表达式,其中并不包含编程语言(即使是Unlx shell)所必需的额外的转义符号。
2388 0
学习正则表达式
学习正则表达式
49 0
|
自然语言处理 Rust 算法
【算法】10. 正则表达式匹配(多语言实现)
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。
|
程序员 Go Python
正则表达式基础
正则表达式基础
56 0
|
SQL Linux Shell
正则表达式实战
本文都是基于Linux 支持的正则来实战。关于正则的流派见这里。
135 1
|
算法 C语言 数据安全/隐私保护
【C++技能树】快速文本匹配 --正则表达式介绍与C++正则表达式使用
假设要判断一个QQ号是否有效,他必须满足以下三个规则
123 0
正则表达式 获取功能
使用正则表达式获取符合规则的子串
|
算法 Shell Linux
正则表达式基础 | 学习笔记
快速学习正则表达式基础。
182 0
|
自然语言处理
正则表达式学习总结
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
1836 0
正则表达式学习总结