我有这个文本块:
XQuery programming language
C# programming language
declarative programming
XSLT programming language
Haskell programming language vs F* programming language
Run Code Online (Sandbox Code Playgroud)
我想检索编程语言的名称.
我试过类似的东西
matches = string.scan('/(\w)*\sprogramming language/i')
Run Code Online (Sandbox Code Playgroud)
但这给了我这个:
[]
[]
[]
[]
Run Code Online (Sandbox Code Playgroud)
虽然我想要一个像这样的数组:
['XQuerye','C#','XSLT','Haskell']
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
您必须删除正则表达式分隔符周围的引号 /
string.scan(/\S+(?=\sprogramming language)/i)
Run Code Online (Sandbox Code Playgroud)
\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*"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |