这是关于Ruby的正则表达式。
我有一个字符串,看起来像:
“--- \ n- PARSEFROMHERE你可以想象数字特殊字符ENDPARSEFROMHERE \ n PARSEFROMHERE任意你可以想象数字特殊字符ENDPARSEFROMHERE \ n”
我如何匹配PARSEFROMHERE ENDPARSEFROMHERE与某些正则表达式之间的所有内容?
谢谢!
答案 0 :(得分:3)
试试这个:
regexp = /\bPARSEFROMHERE\b(.*?)\bENDPARSEFROMHERE\b/m
所有内容都存储在反向引用中1.但如果出于某种神奇的原因你有“不平衡”分隔符,这个正则表达式将会失败,悲惨。
编辑:
regexp = /\sPARSEFROMHERE\s(.*?)\sENDPARSEFROMHERE\b/m
根据您的示例,PARSEFROMHERE始终在空格之后。与ENDPARSEFROMHERE相同,但这以\n
结束,所以我在那里切换了边界锚点。
答案 1 :(得分:0)
简单,只要“ENDPARSEFROMHERE”没有出现在匹配中:
PARSEFROMHERE(.+)ENDPARSEFROMHERE
然而,这有问题。这也将从一个ENDPARSEFROMHERE匹配到下一个ENDPARSEFROMHERE,所以如果你的开始和结束标签不平衡,你就会遇到问题。