【发布时间】:2012-04-18 20:35:09
【问题描述】:
清除/重置所有正则表达式匹配变量的最佳方法是什么?
-
示例
$1如何在正则表达式操作之间不重置并使用最近的匹配:$_="this is the man that made the new year rumble"; / (is) /; / (isnt) /; say $1; # outputs "is" -
使用循环时这可能会出现问题的示例:
foreach (...){ /($some_value)/; &doSomething($1) if $1; }
更新:我认为我不需要这样做,但 Example-2 只是一个示例。这个问题是关于重置匹配变量,而不是实现它们的最佳方式。
无论如何,最初我的编码风格更符合明确和使用 if 块。现在回到这个(Example2)之后,阅读多行代码会更加简洁,我会发现这种语法更快地理解。
【问题讨论】:
-
这个问题也是“如果我要自己开枪,我应该瞄准什么?”
-
@briandfoy: 正是:) - 看到了 oscon 的日程安排,期待看到你的新闻。再次。我认为人们在想我不明白
if (//)的作用以及为什么要使用它。通常,当我在这里时,是因为其他人没有,而我正在寻找最简单的方法来摆脱他们的代码。在这种情况下,我的答案是唯一回答我提出的问题的答案。 更正:我的和 ikegami. -
那你为什么不这样问呢?对情况的解释有时会使愚蠢的问题变成好问题。
-
@mugenkenichi:我想我时间紧迫,但是你可能是对的 ;)
-
你仍然可以编辑你的问题来解释你为什么问它。但是,如果您时间紧迫,您为什么要发布一个推测性的问题呢?除了浪费别人的时间,你不应该做其他事情吗?您似乎有足够的时间来评论其他人的答案。
标签: regex perl backreference