正则表达式断言练习
跳到导航
跳到搜索
一般边界类型概述示例
// 原始字符串 "tey, ihe light-greon apple tangs on ihe greon traa"; // 1) 使用 ^ 匹配字符串开始处。 ^t // 2) 使用 $ 匹配字符串结尾处。 aa$ // 3) 使用 \b 匹配单词和空格边界上的字符。 \bi // 4) 使用 \B 匹配实体边界内的字符。 \Bo
使用 ^
(控制字符)匹配输入的开头
使用 ^
匹配输入的开头。在这个例子中,我们可以通过 /^A/
正则表达式得到以 A 开头的水果。为了选择合适的水果,我们可以使用带有箭头函数的过滤方法。
// 使用正则 /^A/ 选择以'A'开头的水果。 // 这里的 '^' 只有一种含义:匹配输入的开头。 ["Apple", "Watermelon", "Orange", "Avocado", "Strawberry"] ==> ["Apple", "Avocado"]
在第二个示例中,^
用于在输入的开始处匹配,以及在内部使用时用于创建否定或被补充的字符集组和范围。
// 使用正则 /^[^A]/ 选择 不是以'A'开头的水果 // 在这个例子中,"^"控件符号表示两种含义: // 1) 匹配输入的开头 // 2) 一个否定的字符集:[^A] ,意思是匹配不是'A'的字符 ["Apple", "Watermelon", "Orange", "Avocado", "Strawberry"] ==> ["Watermelon", "Orange", "Strawberry"]
匹配字边界
// 选择包含以"en"或"ed"结尾的单词的描述: // /(en|ed)\b/ ["Red apple", "Orange orange", "Green Avocado"] ==> ["Red apple", "Green Avocado"]
先行断言
// /First(?= test)/ ["First test", "test First peach", "This is a First test in a year.", "This is a First peach in a month."] ==> ["First test", "This is a First test in a year."]
先行否定断言
// /\d+(?!\.)/ "3.141" ==> "141"
不同含义的’?!’:断言和范围的组合用法
// 不同含义的 ?! 结合使用断言 /x(?!y)/ 和范围 [^?!]。 // 原始字符串 "Do you want to have an orange? Yes, I do not want to have a lemon!" // /[^?!]+have(?! a lemon)[^?!]+[?!]/ "Do you want to have an orange?" // /[^?!]+have(?! an orange)[^?!]+[?!]/ "Yes, I do not want to have a lemon!"
后行断言
// /(?<=ripe )orange/ ["ripe orange A ", "green orange B", "ripe orange C"] ==> [ "ripe orange A ", "ripe orange C" ]