在记事本++中标记单词,包括破折号(-)
Mark words in notepad++ including dash (-)
我想在 Notepad++ 中标记文本日志中的 sql 脚本。 sql 文件的文本格式如下:
AAAAAAAA.BBBBBBBBBBB.sql
所以我执行的是搜索菜单中的这句话:
\w*.sql
我应该得到 BBBBBBBBBBB.sql。关键是在某些脚本名称中有破折号 (-),当出现这种情况时,我没有得到完整的名称,而只是在最后一个破折号之后结束。
例如,在:
AAAAAAAA.BBBBB-CCCCCCC.sql
我想得到BBBBB-CCCCCCC.sql,但我只得到CCCCCCC.sql
是否有任何可能的公式来获得它们?
如果匹配不能以连字符开始和结束:
\w+(?:-\w+)*\.sql
\w+
匹配1+个单词字符
(?:-\w+)*
可选匹配 -
和 1+ 字字符
\.sql
匹配 .sql
看到一个regex demo.
注意 在您的模式中 \w*
也可以匹配 0 次出现并且 .
可以匹配任何未转义的字符。
另一种选择是使用字符 class 来匹配 -
或单词字符,但这也允许混合和匹配,例如 --a--.sql
[\w-]+\.sql
再看一个regex demo。
我想在 Notepad++ 中标记文本日志中的 sql 脚本。 sql 文件的文本格式如下:
AAAAAAAA.BBBBBBBBBBB.sql
所以我执行的是搜索菜单中的这句话:
\w*.sql
我应该得到 BBBBBBBBBBB.sql。关键是在某些脚本名称中有破折号 (-),当出现这种情况时,我没有得到完整的名称,而只是在最后一个破折号之后结束。
例如,在:
AAAAAAAA.BBBBB-CCCCCCC.sql
我想得到BBBBB-CCCCCCC.sql,但我只得到CCCCCCC.sql
是否有任何可能的公式来获得它们?
如果匹配不能以连字符开始和结束:
\w+(?:-\w+)*\.sql
\w+
匹配1+个单词字符(?:-\w+)*
可选匹配-
和 1+ 字字符\.sql
匹配.sql
看到一个regex demo.
注意 在您的模式中 \w*
也可以匹配 0 次出现并且 .
可以匹配任何未转义的字符。
另一种选择是使用字符 class 来匹配 -
或单词字符,但这也允许混合和匹配,例如 --a--.sql
[\w-]+\.sql
再看一个regex demo。