正则表达式:查找所有包含非字母字符的行?
RegEx: Find all lines that contain non alphabet characters?
我正在使用 Sublime 中的 RegEx 搜索工具。
我需要 select 所有包含非字母字符(不包括空格)的行。
例如
Hedgehog's shoes
The Fox Machine
The Armadillo`s wish
在上面,整个 hedgehog 和 armadillo 行将被 selected,因为它们包含非字母字符。狐狸线不会 selected.
这是我的代码:
.*[^a-zA-Z\s]
说明
.* - Selects string
[^] - Ignore everything in the square brackets
a-zA-Z - Ignores all alphabet characters
\s - Ignores Space
理论上应该可行,但是 it doesn't。它只 select 包含违规字符之前的所有内容,但之后没有任何内容。
请注意,我正在寻找适用于 Sublime 的查找和替换的解决方案。如果这在 Sublime 中是不可能的,那么我该如何调整代码以便我可以通过 MacOS 终端搜索整个文件目录?
我认为在终端中进行
for f in *; do '.*[^a-zA-Z\s]'
但这也不管用。
PS。 Whosebug 上已经有关于此的问题 (Such as this one)。但他们只处理 selecting 单个字符而不是整行。
我建议使用
.*[^[:alpha:]\s].*
.*[^[:alpha:][:space:]].*
详情
.*
- 除换行字符外的任何零个或多个字符,尽可能多
[^[:alpha:]\s]
/ [^[:alpha:][:space:]]
- 除了字母或空白字符之外的任何字符
.*
- 除换行字符外的任何零个或多个字符,尽可能多
查看 SublimeText 演示:
请注意,您可以在 MacOS 终端中使用 [^[:alpha:][:space:]]
和 grep
:
grep '[^[:alpha:][:space:]]' file
您首先尝试的模式匹配直到行尾,然后回溯以匹配 [^a-zA-Z\s]
之一
该模式后没有任何内容,因此匹配将停在那里。
因为你已经匹配了,你可以使用
来匹配该行的其余部分
.*[^a-zA-Z\s].*
我正在使用 Sublime 中的 RegEx 搜索工具。 我需要 select 所有包含非字母字符(不包括空格)的行。
例如
Hedgehog's shoes
The Fox Machine
The Armadillo`s wish
在上面,整个 hedgehog 和 armadillo 行将被 selected,因为它们包含非字母字符。狐狸线不会 selected.
这是我的代码:
.*[^a-zA-Z\s]
说明
.* - Selects string
[^] - Ignore everything in the square brackets
a-zA-Z - Ignores all alphabet characters
\s - Ignores Space
理论上应该可行,但是 it doesn't。它只 select 包含违规字符之前的所有内容,但之后没有任何内容。
请注意,我正在寻找适用于 Sublime 的查找和替换的解决方案。如果这在 Sublime 中是不可能的,那么我该如何调整代码以便我可以通过 MacOS 终端搜索整个文件目录?
我认为在终端中进行
for f in *; do '.*[^a-zA-Z\s]'
但这也不管用。
PS。 Whosebug 上已经有关于此的问题 (Such as this one)。但他们只处理 selecting 单个字符而不是整行。
我建议使用
.*[^[:alpha:]\s].*
.*[^[:alpha:][:space:]].*
详情
.*
- 除换行字符外的任何零个或多个字符,尽可能多[^[:alpha:]\s]
/[^[:alpha:][:space:]]
- 除了字母或空白字符之外的任何字符.*
- 除换行字符外的任何零个或多个字符,尽可能多
查看 SublimeText 演示:
请注意,您可以在 MacOS 终端中使用 [^[:alpha:][:space:]]
和 grep
:
grep '[^[:alpha:][:space:]]' file
您首先尝试的模式匹配直到行尾,然后回溯以匹配 [^a-zA-Z\s]
该模式后没有任何内容,因此匹配将停在那里。
因为你已经匹配了,你可以使用
来匹配该行的其余部分.*[^a-zA-Z\s].*