正则表达式找到至少一个西里尔字符
Regex to find at least one cyrillic character
我想在一个字符串中找到一个或多个西里尔字母 (а-я)。到目前为止,我设法找到了除字符串开头以外的任何字符。
我正在使用的表达方式 -> ^[\p{L}\d\s\-](.*[а-яА-Я].*)+$
- 还行 -> loremфффф
- 还行 -> ipsuфmл
- 好的 -> ffffл
- 还行 -> фgfфdфg
- ок -> ллorem
- 失败 -> лorem(因为第一个字母是西里尔字母,而且是唯一的)
您可以使用
^\P{Cyrillic}*\p{Cyrillic}.*
参见regex demo。
如果您只想处理俄语字符,可以将 \p{Cyrillic}
替换为 [а-яёА-ЯЁ]
,将 \P{Cyrillic}
替换为 [^а-яёА-ЯЁ]
。
详情:
^
- 字符串开头
\P{Cyrillic}*
- 零个或多个西里尔字母以外的字符
\p{Cyrillic}
- 西里尔字符
.*
- 零个或多个除换行字符外的字符尽可能多。
要匹配多行字符串,请在开头添加 (?s)
,或将 .
替换为 [\w\W]
解决方法结构。
我想在一个字符串中找到一个或多个西里尔字母 (а-я)。到目前为止,我设法找到了除字符串开头以外的任何字符。
我正在使用的表达方式 -> ^[\p{L}\d\s\-](.*[а-яА-Я].*)+$
- 还行 -> loremфффф
- 还行 -> ipsuфmл
- 好的 -> ffffл
- 还行 -> фgfфdфg
- ок -> ллorem
- 失败 -> лorem(因为第一个字母是西里尔字母,而且是唯一的)
您可以使用
^\P{Cyrillic}*\p{Cyrillic}.*
参见regex demo。
如果您只想处理俄语字符,可以将 \p{Cyrillic}
替换为 [а-яёА-ЯЁ]
,将 \P{Cyrillic}
替换为 [^а-яёА-ЯЁ]
。
详情:
^
- 字符串开头\P{Cyrillic}*
- 零个或多个西里尔字母以外的字符\p{Cyrillic}
- 西里尔字符.*
- 零个或多个除换行字符外的字符尽可能多。
要匹配多行字符串,请在开头添加 (?s)
,或将 .
替换为 [\w\W]
解决方法结构。