regex - RegEx:根据白名单查找域和子域
问题描述
我有这个清单:
something.microsoft.com
something.bing.de
somethingmicrosoft.com
something-bing.com
microsoft.com
bing.de
我的目标是过滤具有子域或根本没有子域的域。所以最后它应该是这样的:
something.microsoft.com
something.bing.de
microsoft.com
bing.de
正则表达式中应该有一个白名单,因此 SLD 和 TLD(分隔)只允许使用选定的子字符串。
这是我到目前为止所尝试的:
(?:.*)\.{0,1}(?:microsoft|bing)(?:\.de|\.com)
(?:.*\.){0,1}(?:microsoft|bing)(?:\.de|\.com)
如您所见,它还找到了一些东西 microsoft.com。我怎样才能实现我的目标?
解决方案
您可以使用
^(?:.*\.)?(?:microsoft|bing)\.(?:de|com)$
请参阅正则表达式演示。详情:
^
- 字符串的开始(?:.*\.)?
- 除换行符之外的任何字符的可选序列,尽可能多,后跟文字.
字符(?:microsoft|bing)
-microsoft
或bing
\.
- 一个点(?:de|com)
-de
或com
$
- 字符串结束。
推荐阅读
- shopify - 在 Shopify 中使用自定义 API 添加自定义税收计算
- java - 使用 Java Stream API 对嵌套列表求和
- angular - 在生产模式下注入多个 Firestore 应用程序会中断
- html - Codepen vs Bootstrap:CSS 行为不同
- azure-active-directory - 如何从控制台在 azure AD 应用程序中设置 oauth2AllowIdTokenImplicitFlow?
- html - 如何使用 ngFor 在表格中显示对象数组?
- zip - 如何使用 7zip 命令行工具将 CRC 属性添加到 Zip 文件?
- javascript - 由于某种原因,无法使用变量查找对象属性
- python - 更新 Keras 中的方法并导入
- corda - SystemUsers/Peer 没有权限='CREATE_ADDRESS'