这个正则表达式是什么意思: /^\s*(.*?)\s+$/

flyfoxs 2007-05-18 03:56:18

/^\s*(.*?)\s+$/

上面这个正则表达式的(.*?)是什么意思。
. * ?三个符号我都明白,组在一块我就不明白了。


注:
.表示除换行回车以为的字符。

*表示出现任意次

?表示只出现一次,或者0次。
...全文
1769 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyfoxs 2007-05-18
  • 打赏
  • 举报
回复
原来 ? +还有表示贪婪,惰性匹配的意思,明白了。


谢谢大家!结帖了啦
jom_ch 2007-05-18
  • 打赏
  • 举报
回复
说得好,鼓掌...
ImN1 2007-05-18
  • 打赏
  • 举报
回复
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。

---------------------------------
正确的来说应该是采用相反原则——原来是贪婪就变成非贪婪,原来是非贪婪就变成贪婪
梅雪香 2007-05-18
  • 打赏
  • 举报
回复
/^ \s* (.*?) \s+ $/
起始 空白任意个 除换行个任意字符尽可能少的多个 一个以上的空白 结束

也就是匹配这样的字符串的
"sadf "
" asdf "
"asdf "
" adsf "
HStone 2007-05-18
  • 打赏
  • 举报
回复
. 匹配除 "\n" 之外的任何单个字符。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

所以上面正则中的 ? 是为了防止 . 匹配多余的 \s
HStone 2007-05-18
  • 打赏
  • 举报
回复
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。
jiaxueq 2007-05-18
  • 打赏
  • 举报
回复
楼主可能看的是别人写的函数块里面的吧。

去除两边空格,类似VBS的Trim

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧