如何从字符串中间删除空格但在开头保留空格?
How can I delete whitespace from middle of string but keep whitespace at beginning?
几年前,我们所有的 Apache 配置文件都更改为到处都是空白(见下文,不知道是谁做的)。由于我要从 2.2 升级到 2.4,因此很难找到并替换所有必需的配置更改。
我想去掉中间的空白,但保留前面的空白。我知道如何在开头、结尾和任何地方替换。我什至查阅了几本书(例如 Jeff Friedl 的正则表达式),但我无法理解这个问题——甚至不确定这是否可能。
<Directory "THEDIRECTORY">
<LimitExcept GET POST>
deny from all
</LimitExcept>
Options -Indexes -MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
我想要的是:
<Directory "THEDIRECTORY">
<LimitExcept GET POST>
deny from all
</LimitExcept>
Options -Indexes -MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
因此我可以轻松搜索并替换 apache 2.4 的配置更改
我还以为是最后来的
s/\s+(.*)\s+(.*)\s+$//g
但是由于多种原因这不起作用,包括替换的数量发生变化,它们是一个非固定数字。
求助,我一窍不通
您可以使用此正则表达式一次匹配两个或更多个水平白色space,并将其替换为单个 space。
(?<=\S)\h{2,}(?=\S)
这个正则表达式确保只有 space 会被一些使用 \S
包围的非 space 字符匹配
如果您的正则表达式不支持 \h
,您可以只使用 space 而不是 \h
并将您的正则表达式写为,
(?<=\S) {2,}(?=\S)
确保将以下行添加到 .htaccess 或 apache conf 文件的目录标记中(如果尚不存在):
RewriteEngine On
然后在下方添加
RewriteCond %{REQUEST_URI} \s
RewriteRule .* https://DOMAIN_NAME/ [R=301,L]
正在替换 DOMAIN_NAME。
几年前,我们所有的 Apache 配置文件都更改为到处都是空白(见下文,不知道是谁做的)。由于我要从 2.2 升级到 2.4,因此很难找到并替换所有必需的配置更改。
我想去掉中间的空白,但保留前面的空白。我知道如何在开头、结尾和任何地方替换。我什至查阅了几本书(例如 Jeff Friedl 的正则表达式),但我无法理解这个问题——甚至不确定这是否可能。
<Directory "THEDIRECTORY">
<LimitExcept GET POST>
deny from all
</LimitExcept>
Options -Indexes -MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
我想要的是:
<Directory "THEDIRECTORY">
<LimitExcept GET POST>
deny from all
</LimitExcept>
Options -Indexes -MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
因此我可以轻松搜索并替换 apache 2.4 的配置更改
我还以为是最后来的
s/\s+(.*)\s+(.*)\s+$//g
但是由于多种原因这不起作用,包括替换的数量发生变化,它们是一个非固定数字。
求助,我一窍不通
您可以使用此正则表达式一次匹配两个或更多个水平白色space,并将其替换为单个 space。
(?<=\S)\h{2,}(?=\S)
这个正则表达式确保只有 space 会被一些使用 \S
如果您的正则表达式不支持 \h
,您可以只使用 space 而不是 \h
并将您的正则表达式写为,
(?<=\S) {2,}(?=\S)
确保将以下行添加到 .htaccess 或 apache conf 文件的目录标记中(如果尚不存在):
RewriteEngine On
然后在下方添加
RewriteCond %{REQUEST_URI} \s
RewriteRule .* https://DOMAIN_NAME/ [R=301,L]
正在替换 DOMAIN_NAME。