正则苦逼就救……

2012-12-27 03:12:54 +08:00
 YQtaku
jekyll是通过正则将

---
layout: post
---
#content
some words.....

将文章内容读出来吗?(即读取markdown文件,将首个匹配到的`---任何字符---`去掉?
请问这个正则要怎么写囧,想了半天没想到……Orz
2116 次点击
所在节点    正则表达式
7 条回复
catfan
2012-12-27 05:25:44 +08:00
/[\-]+\s+.*\s+[\-]+/i
Catstyle
2012-12-27 09:29:22 +08:00
@catfan
楼主到底是要把`---任何字符---`去掉,还是将文章内容(some words.....)读出来?
YQtaku
2012-12-27 11:34:22 +08:00
@Catstyle 意思都差不多吧?读取整个文件
- 將首个`---任何字符---`替换成空
- 或者匹配首个`---任何字符---`以外的内容读出来
for4
2012-12-27 11:39:12 +08:00
---.*?---
用单行懒惰模式
YQtaku
2012-12-27 14:24:55 +08:00
@catfan 谢谢喵大~ It works~

@for4 这个没有效果=。=

preg_replace('/[\-]+\s+.*\s+[\-]+/i', '', "---\nkey:value\n---\n#content\nsome words\n---test"); // it works.

preg_replace('/---.*?---/', '', "---\nkey:value\n---\n#content\nsome words\n---test"); // it doesnot work.

看来要正式学一下正则了QAQ
Catstyle
2012-12-27 15:10:48 +08:00
@for4
人家是多行的

@YQtaku
好吧, 我有强迫症,去掉和读取是不一样的...
for4那个也可以,不过要在后面加上s就可以开启多行模式了
即/---.*?---/s
Catstyle
2012-12-27 15:12:15 +08:00
@for4
@YQtaku
不好意思,表达有误,是DOTALL模式,即‘.’也可匹配换行符

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/55940

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX