【问题标题】:regex to remove everything after the last dot in a file正则表达式删除文件中最后一个点之后的所有内容
【发布时间】:2013-10-31 15:41:51
【问题描述】:

我正在尝试找到一个正则表达式来删除文件中最后一个点之后的所有内容。到目前为止,我已经找到了删除第一个点之前的所有文本的方法,但我似乎找不到选择文件末尾的方法。你能在路上帮我吗?

提前致谢

【问题讨论】:

  • /\.[^.]*?$/,确定吗?
  • 欢迎来到 Stack Overflow。请通过发布您已应用于问题的一些properly formatted 代码、所有相关错误消息与它们显示的完全相同以及您正在测试的任何样本来改进您的问题。另外,请附上格式正确的预期输出样本,以便人们了解您想要达到的结果。

标签: regex


【解决方案1】:

你可以试试这样的:

\.[^.]*$

匹配所有内容,包括最后一个点之后。如果您不想包含最后一个点,那么您可以使用积极的向后看:

(?<=\.)[^.]*$

【讨论】:

    【解决方案2】:

    尝试使用正则表达式进行搜索和替换

    s/\.[^.]*$/\./
    

    【讨论】:

    • 实际上只是 s/[^.]*$// 在没有反向引用的情况下做同样的事情。
    • @tripleee 在一行中没有点时失败,整行都会消失!
    【解决方案3】:

    在 Bigquery 上,r'([^.]+).?$' 有效,如果您想删除最后一个点。

    【讨论】:

    • 最后的.? 是怎么回事?如果最后一个字符是点,它将删除最后一个点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    相关资源
    最近更新 更多