我正在尝试使用以下正则表达式扫描以下字符串:

 text = %q{akdce ALASKA DISTRICT COURT CM/ECFalmdce 
           ALABAMA MIDDLE DISTRICT COURTalndce
          }

 p courts = text.scan(/(ECF\w+)|(COURT\w+)/)

理想情况下,我要扫描文本并拉出文本“ ECFalmdce”和“ COURTalndce”。使用正则表达式,我想说的是我想要一个以COURT或ECF开头的字符串,然后是随机字符串字符。

返回的数组是:

 [["ECFalmdce", nil], [nil, "COURTalndce"]]

nil的处理方式是什么,有人可以编写更有效的正则表达式吗?有人可以链接到有关比赛组的更多文档吗?

===============>>#1 票数:1 已采纳

您的正则表达式对于ECFCOURT捕获方式有所不同。 您可以使用?:创建非捕获组?:

text.scan(/(?:ECF|COURT)\w+/)
# => ["ECFalmdce", "COURTalndce"]

编辑

关于非捕获组:可以使用它们在不捕获模式的情况下使用括号创建模式。

它们是诸如(?:pattern)

您可以在http://www.regular-expressions.info/refadv.html上找到有关正则表达式的更多信息

  ask by Utopia025 translate from so

未解决问题?本站智能推荐: