【问题标题】:Perl : How to match a parenthesis inside a regexp?Perl:如何匹配正则表达式中的括号?
【发布时间】:2011-06-03 12:32:35
【问题描述】:

我正在尝试从固定格式的数据中提取一些字段,如下所示:

G1 = DFF(G2)

假设 $_ 有上述行,我想在匹配合适的 reg exp 后得到 G1 和 G2。我正在使用这个:

if (/(w+)\s*=\s*DFF\((w+)\)/)
{     
    print "$1, $2";
}

但这不是打印我想要的(什么都不打印,这意味着我的模式是错误的)。谁能告诉我我做错了什么(请耐心等待,这是我的第一个 perl 程序!!)

【问题讨论】:

  • 你想说\w+,而不是w+
  • 你在哪里匹配字符串和正则表达式?您的 if 条件只是具有正则表达式...
  • @Cyber​​nate, $_ 隐含在该表达式中。
  • @friedo:感谢您的澄清...

标签: regex perl


【解决方案1】:
if (/(\w+)\s*=\s*DFF\((\w+)\)/)

不是括号不正确,而是单词匹配 \w 需要转义。

【讨论】:

    猜你喜欢
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多