我无法理解为什么正则表达式:
[^\d\s\w,]
Run Code Online (Sandbox Code Playgroud)
匹配字符串:
"leonardo,davinci"
Run Code Online (Sandbox Code Playgroud)
那是我的考验:
$ echo "leonardo,davinci" | egrep '[^\d\w\s,]'
leonardo,davinci
Run Code Online (Sandbox Code Playgroud)
虽然这按预期工作:
$ echo "leonardo,davinci" | egrep '[\S\W\D]'
$
Run Code Online (Sandbox Code Playgroud)
非常感谢
这是因为egrep没有预定义集\d,\w,\s.因此,将斜杠放在它们前面只是字面上匹配它们:
leonar d o,d avinci
echo "leonardo,davinci" | egrep '[^a-zA-Z0-9 ,]'
Run Code Online (Sandbox Code Playgroud)
确实,不会匹配.
pcregrep:
echo "leonardo,davinci" | pcregrep '[^\w\s,]'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |