正则表达式查找至少一个西里尔字符

标签 regex cyrillic

我想在字符串中查找一个或多个西里尔字母 (а-я)。到目前为止,我设法找到除了字符串开头之外的任何位置的字符。

我正在使用的表达式 -> ^[\p{L}\d\s\-](.*[а-яА-Я].*)+$

  1. 好的 -> loremфффф ф
  2. 好的 -> ipsuфmл
  3. 好的 -> ffffл
  4. 好的 -> фgfфdфg
  5. ок -> ллlorem
  6. fail -> лlorem(因为第一个字母是西里尔字母,而且是唯一的一个)

https://regex101.com/

最佳答案

你可以使用

^\P{Cyrillic}*\p{Cyrillic}.*

请参阅regex demo .

如果您只想处理俄语字符,可以将 \p{Cyrillic} 替换为 [а-яёА-ЯЁ]\P{西里尔文}[^а-яёА-ЯЁ]

详细信息:

  • ^ - 字符串开头
  • \P{西里尔文}* - 零个或多个除西里尔文以外的字符
  • \p{西里尔文} - 西里尔文字符
  • .* - 除换行符之外的尽可能多的零个或多个字符。

要匹配多行字符串,请在开头添加 (?s),或将 . 替换为 [\w\W] 解决方法构造。

关于正则表达式查找至少一个西里尔字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71114405/

相关文章:

javascript - 如何在 Angular Router UI 中使用非捕获组

java - 正则表达式与短语中的子词不匹配

php preg_split 忽略特定字符串中的逗号

python - GCP Dataproc - 西里尔字符在 python 中显示不正确

java - 正则表达式:仅匹配字符串中不相同的字符

c# - 删除括号内的空格(引号内的文本除外)

Python - 正则表达式西里尔字母与拉丁字母混合

string - Lua 字符串长度(utf8 中的西里尔字符)

linux - BASH:echo -e 不适用于 Unicode Cyrillic

javascript - 使用 JavaScript 的俄语 URI