正则表达式记事本++
Regular Expressions Notepad++
使用字符分隔文本时,什么代码允许我在给定行中提取特定段?在一组给定的数据中(以粗体为重点):
1194459945,11/07/2007 18:25:45,2,vnta,287.78,2,7.783,2, 34.111,2,1.3,2,89.54,2,1485.31,26.612
尝试像这样:
11/07/2007 7.783 89.54
目前我的进度是:(\w+,)(.+) (
这给了我前两列,但我对如何达到 7.783 并将其细分感到困惑。不包括整行。我不能放 \,因为那没有帮助。
像这样的东西可能有用.. ^.*?,([^ ,]+)(?:.*?,){5}([^ ,]+)(?:.*?,){6}([^ ,]+).*$
解释:
^
- 字符串/行的开始
.*?,
- 匹配第一个逗号之前的任何内容
([^ ,]+)
- 匹配任何非 space 或逗号的内容并将其存储在 捕获组 1(您的日期)
(?:.*?,){5}
- 非捕获组以匹配接下来 5 个字段的字段和逗号
([^ ,]+)
- 匹配任何非 space 或逗号的内容并将其存储在 捕获组 2(您的 7.783)
(?:.*?,){6}
- 另一个非捕获组来匹配接下来 6 个字段的字段和逗号
([^ ,]+)
- 匹配任何非 space 或逗号的内容并将其存储在 捕获组 3(您的 89.54)
.*$
- 匹配此匹配项之后到字符串/行末尾的任何内容
记事本++:
您可以使用 Notepad++ 中的查找和替换工具仅使用捕获组替换字符串,可以通过使用美元符号后跟捕获组编号来访问,如下所示:
Find: ^.*?,([^ ,]+)(?:.*?,){5}([^ ,]+)(?:.*?,){6}([^ ,]+).*$
Replace:
测试:
之前:
1194459945,11/07/2007 18:25:45,2,vnta,287.78,2,7.783,2,34.111,2,1.3,2,89.54,2,1485.31,26.612
之后:
11/07/2007 7.783 89.54
使用字符分隔文本时,什么代码允许我在给定行中提取特定段?在一组给定的数据中(以粗体为重点):
1194459945,11/07/2007 18:25:45,2,vnta,287.78,2,7.783,2, 34.111,2,1.3,2,89.54,2,1485.31,26.612
尝试像这样:
11/07/2007 7.783 89.54
目前我的进度是:(\w+,)(.+) ( 这给了我前两列,但我对如何达到 7.783 并将其细分感到困惑。不包括整行。我不能放 \,因为那没有帮助。
像这样的东西可能有用.. ^.*?,([^ ,]+)(?:.*?,){5}([^ ,]+)(?:.*?,){6}([^ ,]+).*$
解释:
^
- 字符串/行的开始.*?,
- 匹配第一个逗号之前的任何内容([^ ,]+)
- 匹配任何非 space 或逗号的内容并将其存储在 捕获组 1(您的日期)(?:.*?,){5}
- 非捕获组以匹配接下来 5 个字段的字段和逗号([^ ,]+)
- 匹配任何非 space 或逗号的内容并将其存储在 捕获组 2(您的 7.783)(?:.*?,){6}
- 另一个非捕获组来匹配接下来 6 个字段的字段和逗号([^ ,]+)
- 匹配任何非 space 或逗号的内容并将其存储在 捕获组 3(您的 89.54).*$
- 匹配此匹配项之后到字符串/行末尾的任何内容
记事本++:
您可以使用 Notepad++ 中的查找和替换工具仅使用捕获组替换字符串,可以通过使用美元符号后跟捕获组编号来访问,如下所示:
Find: ^.*?,([^ ,]+)(?:.*?,){5}([^ ,]+)(?:.*?,){6}([^ ,]+).*$
Replace:
测试:
之前:
1194459945,11/07/2007 18:25:45,2,vnta,287.78,2,7.783,2,34.111,2,1.3,2,89.54,2,1485.31,26.612
之后:
11/07/2007 7.783 89.54