搜索
aardio官方社区 门户 查看主题

string.match模式表达式结果疑惑

发布者: Smirk丶 | 发布时间: 2017-11-8 22:45| 查看数: 491| 评论数: 7|帖子模式

v14.07
  1. import console;
  2. var str='class="info">123456789</p>'
  3. console.log("(.+)",string.match(str,'class="info">(.+)[<]'))
  4. console.log("(\d+)",string.match(str,'class="info">(\d+)[<]'))
  5. console.pause()
复制代码


我想从str中匹配出 中间的数字 按照文档里 (\d+) 应该能匹配出数字
不知道是我哪里理解错了
得到结果是这样的 用 (.+) 倒是能匹配出来

最新评论

Smirk丶 发表于 2017-11-8 22:59:27
例如模式串:"\w+",置于单引号中应表示为:'\\w+'。一般为避免混淆以及书写方便,模式字符串应置于双引号内(此时\转义符仅适用于模式语义)。

em..原来是这个意思

所以改成

console.log("(\d+)",string.match(str,'class="info">(\\d+)[<]'))


ok
nlysh007 发表于 2017-11-9 08:27:22
这样也行
console.log("(\d+)",string.match(str,`class="info">(\d+)[<]`))
用``
Danboy 发表于 2017-11-9 09:18:14

反引号是个好东东
幻月 发表于 2017-11-10 14:45:38
错在你用了单引号进行转义
Jacen.He 发表于 2017-11-10 15:00:36
这是一个坑,单引号里"\\"才是模式匹配里的"\"
模式匹配如果有双引号,建议放到反引号里,一般字符串里有反引号的非常少。
Smirk丶 发表于 2017-11-11 22:55:44

嗯 感谢感谢
Smirk丶 发表于 2017-11-11 22:57:11
Jacen.He 发表于 2017-11-10 15:00
这是一个坑,单引号里"\\"才是模式匹配里的"\"
模式匹配如果有双引号,建议放到反引号里,一般字符串里有 ...

谢谢老大亲自回复。我没仔细看文档。反引号嗯!新大陆!哈哈

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-4-23 21:38 , Processed in 0.062517 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表