用于删除空格并替换换行符的正则表达式
Regular expression to remove spaces and replace newline separators
是否可以用换行符(本例中为\s~\s)替换一个字符序列,并用一个正则表达式删除开头和结尾的空格?行数一定要灵活
输入:
foo = 1 ~ bar = 2 ~ baz = 3 ~ ... <- also spaces at the end
期望的输出:
foo = 1
bar = 2
baz = 3
... <- no spaces here
到目前为止我已经成功了,问题是我的结果在最后一行的末尾仍然有空格:
我当前的正则表达式搜索和替换 (https://regexr.com/444au):
# search
/(\s*)([^~\s]{1}.*?)(\s~\s)(?=.*)(\s*)/g
# replace
\n
一个选项是在 \s~\s
和 \s+$
之间交替,从而 匹配 最后的尾随空格:
\s*([^~\s].*?)(?:\s~\s+|\s+$)
替换为
\n
请注意,由于您真正关心的唯一组是具有 [^~\s]{1}.*?
的组,因此您可以删除所有其他捕获组。 {1}
是一个无意义的量词,所以你也可以删除它,并且 (?=.*)
不会做任何事情 - 字符串中的任何位置 无论如何, 后面都会跟着 零个或更多 个字符,因此请随意删除前瞻。
是否可以用换行符(本例中为\s~\s)替换一个字符序列,并用一个正则表达式删除开头和结尾的空格?行数一定要灵活
输入:
foo = 1 ~ bar = 2 ~ baz = 3 ~ ... <- also spaces at the end
期望的输出:
foo = 1
bar = 2
baz = 3
... <- no spaces here
到目前为止我已经成功了,问题是我的结果在最后一行的末尾仍然有空格:
我当前的正则表达式搜索和替换 (https://regexr.com/444au):
# search
/(\s*)([^~\s]{1}.*?)(\s~\s)(?=.*)(\s*)/g
# replace
\n
一个选项是在 \s~\s
和 \s+$
之间交替,从而 匹配 最后的尾随空格:
\s*([^~\s].*?)(?:\s~\s+|\s+$)
替换为
\n
请注意,由于您真正关心的唯一组是具有 [^~\s]{1}.*?
的组,因此您可以删除所有其他捕获组。 {1}
是一个无意义的量词,所以你也可以删除它,并且 (?=.*)
不会做任何事情 - 字符串中的任何位置 无论如何, 后面都会跟着 零个或更多 个字符,因此请随意删除前瞻。