我在尝试调试Ruby中的正则表达式。当我打印正则表达式的内容时,即使这些字符不是表达式的一部分,它仍然在正则表达式的开头显示?-mix
。请查看以下IRB输出以了解此情况的说明。
irb(main):028:0* EXPR = /^a$/
=> /^a$/
irb(main):029:0> EXPR
=> /^a$/
irb(main):030:0> puts EXPR
(?-mix:^a$)
=> nil
如您所见,当使用puts
打印正则表达式的内容时,会出现以 ?-mix
开头的内容。我应该担心吗?它是从哪里来的?
-
符号会将这些选项 关闭(它们默认是关闭的,但如果您的正则表达式支持,您可以在不同的正则表达式部分中打开和关闭它们)。 - Tim Pietzcker(?m)
和其他正则表达式引擎中的(?s)
是一样的吗?你期望^
和$
匹配什么内容? - Tim Pietzcker