regex - 正则表达式匹配除两个字符串之外的所有内容?

标签 regex

假设我有一些日志说:

s3://hello/world
s3n://hello/again

我想要得到以下结果:

hello/world
hello/again

我最初的想法是((s3n:\/\/)|(s3:\/\/))但这当然只选择 s3n://s3:// 。我需要否定(反转)此选择,但它并不像字符串(而不是字符)看起来那么简单。

您将如何反转此选择?

最佳答案

我建议使用^s3n?:\/\/(.*),可以尝试here 。您所需的字符串位于第一个捕获组中。

说明:

  • ^ - 匹配字符串的开头。
  • s3n? - 匹配“s3”后跟可选的“n”。
  • :\/\/ - 匹配一个冒号和两个正斜杠。
  • (.*) - 匹配并捕获字符串的其余部分。

关于regex - 正则表达式匹配除两个字符串之外的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50633653/

相关文章:

java - 如何使用 Java 中的正则表达式删除 HTML 输出文件中的空行

javascript - 将 regex 存储在变量中 vs on the go value use

regex - 正则表达式可以做基本的算术吗?

javascript - 正则表达式组不排除点

python - 传递带有(意外)转义字符的字符串会丢失字符,即使它是原始字符串

python - 使用正则表达式和 pandas 分隔字母和数字

c# - 我的简单正则表达式是灾难性的回溯吗?

c++ - 作为参数传递的字符指针转换为字符串

python - 在数据框中搜索包含列表中字符串的行

java - 在 HashSet 中搜索时如何使用正则表达式