如何用Regex给文本字段首行首尾添加方括号?
用正则仅给文本首行添加首尾方括号
直接可行的正则方案
不用拆分两次替换,一个正则就能完成需求:
查找规则:
^\A(.*)$
替换内容:
[$1]
注意:要保证正则工具的多行模式处于关闭状态,默认情况下.不会匹配换行符,这个正则会精准捕获整个文本的第一行内容,替换后只会给首行加上首尾方括号。
如果你的工具默认开了多行模式,换这个更稳妥的写法:
查找规则:
^\A([^\n]*)\n?
替换内容:
[$1]\n?
[^\n]*明确匹配首行里所有不含换行的字符,\n?保留首行后的换行结构,不会打乱原文本的排版。
之前尝试失败的原因
- 第一次只在替换里写了开头的
[,没加结尾的],自然只完成一半操作。 - 第二次用
^(.*)$\z,\z匹配的是整个文本的末尾位置,所以会把]加到最后一行的结尾,而非首行。
批量处理加粗行的额外方案
如果要给所有加粗格式的行加方括号(假设加粗用**标记),可以用这个正则:
查找规则:
\*\*(.*?)\*\*
替换内容:
[**$1**]
要是用的是其他加粗标记(比如<b>标签),只要调整匹配的标记部分就行。
内容的提问来源于stack exchange,提问作者Jason Bourne
相关产品推荐
相关产品推荐

