我正在试图找出一个正则表达式,它在单引号(')之间产生任何字符串,如果该字符串包含给定的单词。
例如,假设我有以下文本,并且我希望匹配包含单词“test”的单引号之间的所有内容:
Some sample text,
'this is test a match' and
'this is not a match' but
'this is a match again because it contains the word test'.
This "is not a test match because its double quotes".
And this is not a test match either because this is not encapsulated in quotes.
正则表达式需要返回两个匹配项,即
"this is a test match"
"this is a match again because it contains the word test"
我在这里有点失落。我试过text.match(/'(.*?)'/);返回单引号之间的所有内容,然后对子字符串匹配进行函数检查。但奇怪的是,正则表达式似乎甚至没有在单引号属性中返回所有字符串。
非常感谢指针..谢谢!
答案 0 :(得分:5)
你的正则表达式是正确的,除非你想匹配所有出现,所以使用g
全局搜索所有匹配:
text.match(/'(.*?)'/g)
并匹配确切的字词:
text.match(/'(.*?test.*?)'/g)
通过使用以下方法制定Regualr Expression,您可以允许它对任何单词都是通用的。
word = 'test'
text.match(RegExp("'(.*?"+word+".*?)'", 'g'))
答案 1 :(得分:1)
我只是在RegexPal上愚弄了你的例子并找出了以下表达式:'(.*)test(.*)'
答案 2 :(得分:1)