gpt4 book ai didi

正则表达式:如何在选择前检查是否只有空格

转载 作者:行者123 更新时间:2023-12-02 04:23:00 27 4
gpt4 key购买 nike

我需要在我的代码中对齐一组特定的字符,但在这些条件下:

  1. 一定是最后出现在线上的东西

  2. 它必须是“有效”行,这意味着在字符串之前需要有除空格以外的任何内容

我一直试图对齐的内容如下:

            //Example                                                                  
//########.#

LDT (exampleCode)
//########.# E (exampleCode)
AND (exampleCode) //########.#
AND (exampleCode) //########.#
MEMO (exampleCode) //########.#

我已经开始在 SublimeText3 上弄乱正则表达式,以便使上面的代码与此对齐:

            //Example                                                                  
//########.#

LDT (exampleCode)
//########.# E (exampleCode)
AND (exampleCode) //########.#
AND (exampleCode) //########.#
MEMO (exampleCode) //########.#

“//########.#”是我要对齐的字符集。

我已经可以遵循第一条规则,使用以下规则

//[0-9]{8}\.[0-9a-zA-Z]$

然而最终的结果是这样的:

            //Example                                                                  
//########.#

LDT (exampleCode)
//########.# E (exampleCode)
AND (exampleCode) //########.#
AND (exampleCode) //########.#
MEMO (exampleCode) //########.#

我想找到一种方法来检查该行是否在我想要对齐的字符之前有任何内容,以便它只在它之前有任何内容而不是只有空格时对齐

最佳答案

查看您的模式,我假设 # 是您想要匹配 [0-9]{8} 8 位数字的数字。

如果是这种情况,一种选择可能是使用 2 个捕获组并在替换中使用它们。

^(\h*\S+(?:\h+\S+)*)\h+(//[0-9]{8}\.[0-9a-zA-Z])$

部分

  • ^ 字符串的开始
  • ( 捕获组 1
    • \h*\S+ 匹配 0+ 个水平空白字符,1+ 个非空白字符
    • (?:\h+\S+)* 重复 0+ 次匹配 1+ 水平空白字符和 1+ 非空白字符
  • ) 关闭群组
  • \h+ 匹配 1+ 个水平空白字符(您要替换的字符)
  • ( 捕获组 2
    • //[0-9]{8}\.[0-9a-zA-Z] 你的模式(注意转义点)
  • ) 关闭群组
  • $ 字符串结束

在替换中使用 2 组并用你想要的空间量填充它

$1 $2

Regex demo

关于正则表达式:如何在选择前检查是否只有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58033008/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com