(.*?),(.+?) 的理解

1 (.*?),(.+?) 的作用

解析:
. 的作用为匹配所有字符(除换行符)
* 的作用为匹配前面的子表达式零次或多次
? 的作用为匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
由于*,+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配
例如:

 let regp = /(\/(.*)\/)/
 console.log(regp.exec('/sasd/asd/asddsa'))

匹配结果为 sasd/asd

 let regp = /(\/(.*?)\/)/    
 console.log(regp.exec('/sasd/asd/asddsa'))

匹配结果为 sasd
没有?为贪婪匹配,有匹配回溯,寻找最大的匹配结果,加上?之后为非贪婪匹配,匹配第一个结果(最小结果)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在给出的代码中,以正号(+)表示新增定义,以负号(-)表示修改删除的定义。每个定义后面数字表示相对于某个基地址的移量。偏移量为负数表示在地址之前的位置,为零或正表示在基地址之后的位置。 下是每个定义的说明: - `-0000000000004 r:.word 2 dup(?)`: 定义一个名为 `r`数组,数组元素的大小为 `word`(即2字节),并且有2个元素。 - `-0000000000000012 var_0:.long ?`: 定义了一个名为 `var_0` 的变量,大小为 `long`(即4字节)。 - `-0000000000000010 var_2:.long ?`: 定义了一个名为 `var_2` 的变量,大小为 `long`。 - `-000000000000000E .word ? ; undefined`: 定义了一个未命名的 `word` 类型的变量。 - `-000000000000000D var_5:.word ?`: 定义了一个名为 `var_5` 的变量,大小为 `word`。 - `-000000000000000C var_6:.word ?`: 定义了一个名为 `var_6` 的变量,大小为 `word`。 - `-000000000000000B var_7:.word ?`: 定义了一个名为 `var_7` 的变量,大小为 `word`。 - `-000000000000000A var_8:.word ?`: 定义了一个名为 `var_8` 的变量,大小为 `word`。 - `-0000000000000009 var_9:.word ?`: 定义了一个名为 `var_9` 的变量,大小为 `word`。 - `-0000000000000008 var_A:.word ?`: 定义了一个名为 `var_A` 的变量,大小为 `word`。 - `-0000000000000007 var_B:.word ?`: 定义了一个名为 `var_B` 的变量,大小为 `word`。 - `-0000000000000006 var_C:.word ?`: 定义了一个名为 `var_C` 的变量,大小为 `word`。 - `-0000000000000005 var_D:.word ?`: 定义了一个名为 `var_D` 的变量,大小为 `word`。 - `-0000000000000004 var_E:.word ?`: 定义了一个名为 `var_E` 的变量,大小为 `word`。 - `-0000000000000003 var_F:.word ?`: 定义了一个名为 `var_F` 的变量,大小为 `word`。 - `-0000000000000002 var_10:.word ?`: 定义了一个名为 `var_10` 的变量,大小为 `word`。 - `-0000000000000001 var_11:.word ?`: 定义了一个名为 `var_11` 的变量,大小为 `word`。 - `+0000000000000000 var_12:.long ?`: 修改了之前的定义,将 `var_12` 的大小改为 `long`。 - `+0000000000000002跟-000000000000000E r:.word 2 dup(?)`: 修改了之前的定义,将 `r` 的元素大小改为 `word`。 - `-000000000000000C s:.word 4 dup(?)`: 修改了之前的定义,将 `s` 的元素大小改为 `word`。 - `-0000000000000008 .word ? ; undefined`: 定义了一个未命名的 `word` 类型的变量。 - `-0000000000000007 var_1:.word ?`: 定义了一个名为 `var_1` 的变量,大小为 `word`。 - `-0000000000000006 var_2:.word ?`: 定义了一个名为 `var_2` 的变量,大小为 `word`。 - `-0000000000000005 var_3:.word ?`: 定义了一个名为 `var_3` 的变量,大小为 `word`。 - `-0000000000000004 var_4:.word ?`: 定义了一个名为 `var_4` 的变量,大小为 `word`。 - `-0000000000000003 var_5:.word ?`: 定义了一个名为 `var_5` 的变量,大小为 `word`。 - `-0000000000000002 var_6:.long ?`: 定义了一个名为 `var_6` 的变量,大小为 `long`。 - `+0000000000000000 var_8:.long ?`: 修改了之前的定义,将 `var_8` 的大小改为 `long`。 - `+0000000000000002 var_A:.long ?`: 修改了之前的定义,将 `var_A` 的大小改为 `long`。 - `+0000000000000004 var_C:.long ?`: 修改了之前的定义,将 `var_C` 的大小改为 `long`。 - `+0000000000000006的差别`: 这部分没有给出具体的定义,无法提供详细说明。 根据上述说明,你可以看到在修改或删除定义时,变量的类型和大小可能发生了变化。此外,还需要注意变量在内存中的布局和相对于基地址的偏移量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值