首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex:为了匹配所有代理服务器,正确的regex是什么?

Regex:为了匹配所有代理服务器,正确的regex是什么?
EN

Stack Overflow用户
提问于 2015-02-09 13:46:30
回答 2查看 239关注 0票数 1

我在为我们的代理农场写一个木偶模板。

我们在阿姆斯特丹、新加坡、纽约等地都有数据中心。每个地理位置的代理都有相应的命名,例如:新加坡的代理命名为sgproxy01-10,阿姆斯特丹的代理命名为ams2proxy01-30,等等.

在编写最终将影响到我公司所有服务器的模板时,我想编写一个"IF语句“,它将只向代理服务器添加特定行,其名称与我试图设置的模式相匹配。

代码语言:javascript
复制
<% if @hostname =~ /^sgproxy\d+/ -%>
if [ "$(cat $LBMEMFILE)" = "0" ]; then
echo -e "\e[35m Membeship in LB:        Yes"
elif [ "$(cat $LBMEMFILE)" = "2" ]; then
echo -e "\e[35m Membeship in LB:        No $LISTMEMFILE"
<% end -%>

我试图设置的正则表达式位于第一行:

"<% if @hostname =~ /^sgproxy\d+/ -%>“

对于当前的配置,它们的主机名以sgproxy开头的所有服务器,然后任何其他数字都将得到这些行。

我想改变regex,以便它将影响所有服务器,其中包括proxy\d+。

我试过以下正则表达式:

代码语言:javascript
复制
^??proxy\d+
^..proxy\d+
^*proxy\d+

都不管用。

你能帮我找到正确的正则表达式来匹配所有服务器主机名中的“代理”这个词吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-09 14:00:16

木偶使用与Ruby相同的正则表达式

/proxy\d+/应该工作得很好,[医]风疹非常适合快速检查regexs。就像这样:

票数 1
EN

Stack Overflow用户

发布于 2015-02-09 14:00:29

你不需要匹配整条线,你可以只匹配部分。尽管如此,

代码语言:javascript
复制
/proxy\d+/

会成功的。当你还想更精确的时候:

代码语言:javascript
复制
# whether proxies have only letters, digits and underscores in prefix
/\A\w+?proxy\d+/  

代码语言:javascript
复制
# whether proxies can not contain spaces in names 
/\A\S+?proxy\d+/  

Sidenote:通常最好在字符串的开头使用\A匹配,而不是^

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28411208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档