替换组内换行符的 REGEX 策略
REGEX strategy to replace line breaks inside group
我正在尝试仅用一个正则表达式一次性替换,但我认为这根本不可能。我正在使用 RegexBuddy,但我总是得到一个灾难性的结果,无法计算表达式。
对于本文:
3 bla bla! !
4 yep yep! ?
FROM HERE
5 something randdom here!
6 perhaps some HTML there
TO HERE
7 what ever you like over here
8 and that's all folks!enter code here
我想找到一个用其他东西替换换行符的正则表达式,比方说 $$,但仅限于“从这里”“到这里”部分。所以基本上最终结果是这样的:
3 bla bla! !
4 yep yep! ?
FROM HERE$$
$$
5 something randdom here!$$
$$
6 perhaps some HTML there$$
$$
TO HERE
7 what ever you like over here
8 and that's all folks!
我有这个表情
((FROM HERE))((.*)(\n))+(TO HERE)
但到目前为止,我一直在尝试用其他东西替换 \n 组。我过去做过类似的事情,所以我想说这应该是一次性的。
如果这在正则表达式中是不可能的,我会简单地创建一个 C# 控制台应用程序,首先将该文本转换为一个字符串,然后用 $$ 替换每个 \n,然后放回去。那应该不难。
如果您使用的是 .NET,一种选择是
(?s)(?<=^FROM HERE\b.*?)\r?\n\r?\n(?=.*?^TO HERE\b)
(?s)
行内修饰符,点匹配换行符
(?<=^FROM HERE\b.*?)
在行首左侧断言 FROM HERE
\r?\n\r?\n
匹配 2 个换行符
(?=.*?^TO HERE\b)
在行首右侧断言 TO HERE
在替换中使用(双转义$$
)
\n$$$$\n
看到一个.NET regex demo and a C# demo.
我正在尝试仅用一个正则表达式一次性替换,但我认为这根本不可能。我正在使用 RegexBuddy,但我总是得到一个灾难性的结果,无法计算表达式。
对于本文:
3 bla bla! !
4 yep yep! ?
FROM HERE
5 something randdom here!
6 perhaps some HTML there
TO HERE
7 what ever you like over here
8 and that's all folks!enter code here
我想找到一个用其他东西替换换行符的正则表达式,比方说 $$,但仅限于“从这里”“到这里”部分。所以基本上最终结果是这样的:
3 bla bla! !
4 yep yep! ?
FROM HERE$$
$$
5 something randdom here!$$
$$
6 perhaps some HTML there$$
$$
TO HERE
7 what ever you like over here
8 and that's all folks!
我有这个表情
((FROM HERE))((.*)(\n))+(TO HERE)
但到目前为止,我一直在尝试用其他东西替换 \n 组。我过去做过类似的事情,所以我想说这应该是一次性的。
如果这在正则表达式中是不可能的,我会简单地创建一个 C# 控制台应用程序,首先将该文本转换为一个字符串,然后用 $$ 替换每个 \n,然后放回去。那应该不难。
如果您使用的是 .NET,一种选择是
(?s)(?<=^FROM HERE\b.*?)\r?\n\r?\n(?=.*?^TO HERE\b)
(?s)
行内修饰符,点匹配换行符(?<=^FROM HERE\b.*?)
在行首左侧断言FROM HERE
\r?\n\r?\n
匹配 2 个换行符(?=.*?^TO HERE\b)
在行首右侧断言TO HERE
在替换中使用(双转义$$
)
\n$$$$\n
看到一个.NET regex demo and a C# demo.