我有这样的文字:
Name: <% $person %> <& component &>
我正在努力想出一个Ruby正则表达式,它会给我不看起来像<% .. %>
或<& ... &>
的所有内容。
这是我使用否定前瞻的方法:
(?!<&|<%)(.+\s*)(?!&>|%>)
但是当我希望它返回Name:
时,它会返回整个字符串(已测试here)。
答案 0 :(得分:2)
答案 1 :(得分:1)
试试这个正则表达式:
(?<=^|[&%]>)
- 正向观察:文本或文本的开头
“结束”标记(&>
或%>
)。(.+?)
- 这是您要捕获的内容。请注意?
之后的+
,
不情愿版本,防止“消耗”其余部分
文本。(?=<[&%]|$)
- 积极前瞻:要么“开放”
标记(<&
或<%
)或文字结尾。总结一下:
(?<=^|[&%]>)(.+?)(?=<[&%]|$)