试图匹配""中的字符串

时间:2012-10-17 10:19:48

标签: regex string jflex

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

我希望匹配表单的模式

"testing" 

但我的正则表达式与这些字符串中的任何一个都不匹配。我在哪里弄错了?

提前致谢。

3 个答案:

答案 0 :(得分:1)

我想你可能不得不逃避

"

\

如:

\"[a-zA-z0-9]*\"

答案 1 :(得分:1)

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

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

答案 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""

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

修改

如果你只是想在双引号之间提取东西:

(?<=")[^"]* 

正是您要找的。

仍在使用grep进行测试:

kent$  echo '"xxx bbb _ foo bar"'|grep -Po '(?<=")[^"]*'
xxx bbb _ foo bar