我们说我有一堆这样的文字:
"title": "Blog post headline",
"url": "http://urlofblogpost.com/article",
"title": "Blog post2 headline",
"url": "http://urlofblogpost.com/article2",
或者像这样(如果我稍微清理一下):
Blog post headline
http://urlofblogpost.com/article
Blog post2 headline
http://urlofblogpost.com/article2
我可以在Sublime Text中使用搜索和替换并将其更改为?:
<a href="http://urlofblogpost.com/article">Blog post headline</a>
<a href="http://urlofblogpost.com/article2">Blog post2 headline</a>
答案 0 :(得分:2)
搜索:"title":\s*"([^"]+)",?[\r\n]+"url":\s*"([^"]+)",?
替换:<a href="$2">$1</a>
在 the Regex Demo 中,请参阅底部的替换。
<强>解释强>
"title":
匹配文字字符\s*
匹配可选空格"
匹配报价([^"]+)
捕获任何不属于第1组",?
匹配引号和可选逗号[\r\n]+
匹配换行符"url":"
匹配文字字符\s*
匹配可选空格([^"]+)
捕获任何不是第2组引用的字符",?
匹配引号和可选逗号$1
和$2
插入与第1组和第2组匹配的内容答案 1 :(得分:1)
第二个例子的解决方案,
<强>正则表达式:强>
([^\n]+)\n([^\n]+)(?=\n|$)
替换字符串:
<a href="\2">\1</a>
<强>解释强>
( group and capture to \1:
[^\n]+ any character except: '\n' (newline) (1
or more times)
) end of \1
\n '\n' (newline)
( group and capture to \2:
[^\n]+ any character except: '\n' (newline) (1
or more times)
) end of \2
(?= look ahead to see if there is:
\n '\n' (newline)
| OR
$ before an optional \n, and the end of
the string
) end of look-ahead