如何匹配文本行中间被#(井号)包裹的内容?
如何查找文本行中间被
#(井号)包裹的文本? 期望行为
| 输入 | 输出 |
|---|---|
Loren, here is some #IN#-line #TEXT# ipsum. | (IN)(TEXT) |
失败的尝试
尝试使用的正则表达式:(?:?<!^)(?:^\s*)(#\s*[^\n\r]+\s*#+)(?:?<!$)
(?:?<!^):匹配行首以外内容的非捕获组
(:开启分组?::标记该分组为非捕获组(不保存匹配内容)?<!:负向零宽后行断言(断言当前位置之前不是指定内容)^:匹配字符串开头或换行符\n\r?|\r?\n的位置):结束分组(?:^\s*):非捕获组,匹配行首或零个及以上空白字符(#\s*[^\n\r]+\s*#+):捕获组,匹配被井号包裹的内容
(:开启捕获组(保存匹配内容)#:匹配单个井号\s*:匹配零个或多个空白字符
\s:涵盖制表符、回车符等空白类字符*:匹配次数为0到无限次[^\n\r]+:匹配除换行符、回车符外的任意字符,至少一次\s*:再次匹配零个或多个空白字符#+:匹配一个或多个井号):结束捕获组(?:?<!$):匹配行尾以外内容的非捕获组
(:开启分组?::标记该分组为非捕获组?<!:负向零宽后行断言$:匹配字符串结尾或换行符\n\r?|\r?\n的位置):结束分组
内容的提问来源于stack exchange,提问作者Toothpick Anemone
相关产品推荐
相关产品推荐

