0
"[a-zA-Z0-9]*"

我希望匹配表单的模式

"testing" 

但我的正则表达式不匹配任何这些字符串。我在哪里犯错误?

提前致谢。

4

3 回答 3

1

我想你可能不得不逃避

"

\

如:

\"[a-zA-z0-9]*\"
于 2012-10-17T10:22:12.390 回答
1

这将按预期为您提供三场比赛。

请参阅此http://rubular.com/r/WW9IKTb0Xa

于 2012-10-17T10:22:21.050 回答
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""

如果你想在双引号之间提取东西,你需要解释,你想在你的第二个例子中得到什么。

编辑

如果您只想提取双引号之间的内容:

(?<=")[^"]* 

就是你要找的。

仍在使用 grep 进行测试:

kent$  echo '"xxx bbb _ foo bar"'|grep -Po '(?<=")[^"]*'
xxx bbb _ foo bar
于 2012-10-17T10:31:05.833 回答