我有这段文字:
XQuery programming language
C# programming language
declarative programming
XSLT programming language
Haskell programming language vs F* programming language
我想检索编程语言的名称。
我尝试了类似的东西
matches = string.scan('/(\w)*\sprogramming language/i')
但这给了我这个:
[]
[]
[]
[]
而我想要这样的数组:
['XQuerye','C#','XSLT','Haskell']
我究竟做错了什么?
您必须删除正则表达式定界符周围的引号 /
string.scan(/\S+(?=\sprogramming language)/i)
\S+
匹配一个或多个非空格字符。(?=\sprogramming language)
肯定的前瞻性声明,匹配必须紧跟空格和programming language
字符串。i
修饰符使正则表达式引擎进行不区分大小写的匹配。
irb(main):001:0> str = "XQuery programming language
irb(main):002:0" C# programming language
irb(main):003:0" declarative programming
irb(main):004:0" XSLT programming language
irb(main):005:0" Haskell programming language vs F* programming language"
=> "XQuery programming language\nC# programming language\ndeclarative programming\nXSLT programming language\nHaskell programming language vs F* programming language"
irb(main):007:0> str.scan(/\S+(?=\sprogramming language)/i)
=> ["XQuery", "C#", "XSLT", "Haskell", "F*"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句