有没有办法编写一个正则表达式,从包含 48 个这样的字符的每一行中删除 2 个定界字符“þ”?
我试过手动删除它们,但是时间太长了。然后我尝试了一个有问题的正则表达式:
s/(^(?:.*?þ){46}.*?)þþ(.*)/$1$2/g
,但它灾难性地失败了。
您可以在第一部分使用 negated character class 匹配除
þ
以外的任何字符,而不是非贪婪点。
^((?:[^þ]*þ){46}).*?þþ(.*)
模式匹配:
^
字符串开始(
捕获 第 1 组
(?:[^þ]*þ){46})
重复匹配字符 46 次,除了 þ
然后匹配 þ
.*?þþ
匹配尽可能少的字符,直到第一次出现þþ
(.*)
捕获组2,匹配其余行查看正则表达式演示。