Regex 为什么POSIX正则表达式^a*$”;匹配包含美元符号的字符串?
我希望正则表达式Regex 为什么POSIX正则表达式^a*$”;匹配包含美元符号的字符串?,regex,unix,posix,Regex,Unix,Posix,我希望正则表达式^[a-z]*$不会匹配随机$something 但是,当我在shell上尝试时,这与此匹配: ~# echo "random$something" | grep "^[a-z]*$" random ~# echo "aaaaa$something" | grep "^a*$" aaaaa 为什么会这样 我在Solaris和RedHat Linux上都看到过这种情况。请注意 echo "aaaaa$something" 没有grep,结果是 aaaaa 这是因为shell
^[a-z]*$
不会匹配随机$something
但是,当我在shell上尝试时,这与此匹配:
~# echo "random$something" | grep "^[a-z]*$"
random
~# echo "aaaaa$something" | grep "^a*$"
aaaaa
为什么会这样
我在Solaris和RedHat Linux上都看到过这种情况。请注意
echo "aaaaa$something"
没有grep,结果是
aaaaa
这是因为shell试图将$something解释为变量。
如果将双引号更改为单引号,您将看到预期的行为;这不是结果。请注意,如果你只是这样做
echo "aaaaa$something"
没有grep,结果是
aaaaa
这是因为shell试图将$something解释为变量。
如果将双引号更改为单引号,您将看到预期的行为;这不是结果