"[a-zA-Z0-9]*"
我希望匹配表单的模式
"testing"
但我的正则表达式与这些字符串中的任何一个都不匹配。我在哪里弄错了?
提前致谢。
答案 0 :(得分:1)
我想你可能不得不逃避
"
带
\
如:
\"[a-zA-z0-9]*\"
答案 1 :(得分:1)
这将按预期为您提供三场比赛。
答案 2 :(得分:1)
如果您的要求是“匹配”而非“提取”:
^"[a-zA-Z0-9"]*"$ would be the regex you need.
请注意,由于您的第二个示例嵌套了双引号,因此"
[]
用grep测试:
kent$ echo '"testing"
"testing123"hello""
'|grep -E '^"[a-zA-Z0-9"]*"$'
"testing"
"testing123"hello""
如果你想在双引号之间提取东西,你需要解释一下,你想在第二个例子中得到什么。
修改强>
如果你只是想在双引号之间提取东西:
(?<=")[^"]*
正是您要找的。 p>
仍在使用grep进行测试:
kent$ echo '"xxx bbb _ foo bar"'|grep -Po '(?<=")[^"]*'
xxx bbb _ foo bar