我正在编写一个脚本,用非ascii字符逐行清理文件,但我遇到了正则表达式模式的问题。我需要一个正则表达式模式,匹配任何以星号开头的行,可能有一个等号,并将包含非ascii字符和空格。我知道如何匹配非ascii字符,但不能与其他正面定义的字符匹配。
以下是我需要匹配的示例行:
* = Ìÿð ÿð
这是我到目前为止的模式:
/\*[^[:ascii:]]+[\r\n]/
这将匹配以星号开头并包含非ascii字符的行,但如果该行中有空格或等号,则不匹配。
答案 0 :(得分:3)
尝试以下表达式:
^\*\s*=?\s*[[:^ascii:]\s]+[\r\n]*$
这与行尾^
匹配,然后匹配零个或多个空格\s*
,后跟可选的等号=?
,然后是零个或多个空格{{1} }。
现在一个很好的表达式匹配一个或多个字符,这些字符是非ascii和空格\s*
的组合,请检查docs以查看字符类的语法。
最后,表达式匹配回车符和换行符的组合,这些换行符可能结束该行。
答案 1 :(得分:0)
也许这个 - (编辑:重读后改变)
# ^\*(?=.*[^\0-\177])
^
\*
(?= .* [^\0-\177] )