首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP解析输入域名的文本区(以空格、逗号、换行符分隔)

问PHP解析输入域名的文本区(以空格、逗号、换行符分隔)
EN

Stack Overflow用户
提问于 2009-08-26 11:44:52
回答 2查看 899关注 0票数 0

对于我的用户,我需要提供一个屏幕,在那里他们可以在一个文本区输入多个域名。用户可以将域名放在不同的行上,或者用空格或逗号(甚至可能是分号-我不知道!)

我需要解析和识别带有扩展名的单个域名(将是.com,其他任何内容都可以忽略)。

用户输入可以是:

asdf.com

qwer.com

与/或

wqer.com,gwew.com

与/或

ertert.com gdfgdf.com

没有人会输入像www.abczone.com这样的3级域,但如果他们这样做了,我只对提取abczone.com部分感兴趣。(我可以有一个单独的正则表达式来验证/提取它们)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-26 11:54:15

这样就可以了:

代码语言:javascript
复制
(\b[a-zA-Z][a-zA-Z0-9-]*)(?=\.com\b)

查找字母的所有序列,后跟字母、数字或连字符,后跟.com,然后是断字符。

(您需要最后一点来防止从bim.command.com获取bim.com。)

Python测试用例,因为我手头没有PHP测试环境:

代码语言:javascript
复制
DATA = "asdf.com\nx-123.com, gwew.com bim.command.com 123.com, x_x.com"
import re
print re.findall(r'(\b[a-zA-Z][a-zA-Z0-9-]*)(?=\.com\b)', DATA)
# Prints ['asdf', 'x-123', 'gwew', 'command']
票数 1
EN

Stack Overflow用户

发布于 2009-08-26 12:15:20

如下所示,如果需要,您可以使用i修饰符并删除所有大写A-Z:

代码语言:javascript
复制
\b([a-zA-Z][0-9a-zA-Z\-]{1,62})\.com\b
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1334140

复制
相关文章

相似问题

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