[英]Regex to catch non-sense words with some rules in spanish
我嘗試了很多非常不成功的模式,但我無法獲得真實的東西。 以下嘗試是INCOMPLETE ,我不是在尋求改進,只是針對此場景的真正解決方案。
我正在嘗試在C#(.NET 2017)上檢測以下模式/規則(如果匹配則返回true):
true
,則所有字符串均返回true
'a,e,i,o,u and y'
true
true
bstr
, dscr
, dstr
, nscr
, nstr
, rscr
, nsfl
, nsfr
, nsgr
a
, c
, e
, i
, l
, o
, r
, s
, u
我的C#代碼是示例之一:
Regex regex = new Regex(ConfigurationManager.AppSettings["Regex_LogicalWord"]);
Match match = regex.Match(input);
return match.Success
到目前為止,我的正則表達式(無法正常工作):
\b(?:[^aeiyou\W]){1,}\b
\b(?=\w{2,}\b)(?:[^aeiou\W]*[aeiuo]){1,}[^aeiou\W]*\b
([bdfghjkmnñpqtvwxyz])\1{1}|([aceilorsu])\2{2}|[bcdfghjklmnpqrstvwxyz]{5}
任何建議或任何幫助將不勝感激。
主要思想是降低regex的性能,因此我假設一個模式是我的目標,而不是循環每個單詞以獲取不同的模式。
更新:查找和排除的示例:
NO - con la jaja jsld la la
NO - aj124312
NO - lsj
NO - aaa
NO - ºººº
NO - yyamo
NO - hoooola
NO - ferrrocarrilll
NO - reveeer
NO - llluvia
NO - djsagaklsjgklfagkljfa
NO - glalghjrjgkJGSDGg
NO - sdfsadasdfsdfsadf
NO - sadasdgjkwergjkeqjk
NO - hola llluvia
NO - dfkjlasfjklasdfgjaklsg
NO - kajfgkajfdgjkldfgj
NO - akfjgklafd
NO - asfkjgakld
NO - skadjgflkasjgñl
NO - q
YES - y
YES - 1222133123123
YES - 11111111111123213123
YES - de
YES - y etc
YES - a3 a4
YES - hola
YES - hoola
YES - ferrocarril
YES - veer
YES - reeveer
YES - lluvia
YES - 121112111111111223
YES - Abstraer, substraer
YES - Abstruso
YES - Adscribir, circunscribir, inscribir y subscribir, transcribir
YES - Adstringir
YES - Conscripción
YES - Constreñir
YES - Construir
YES - Demonstrar (variante de demostrar)
YES - Obstrucción
YES - Imperscrutable e inscrutable,
YES - Instridente
YES - Instruir
YES - Instrumento
YES - Menstruación
YES - Monstruo
YES - Obstruir
YES - Premonstratense
YES - Sánscrito
YES - Transflor
YES - Transfregar
YES - Transfretar
YES - Transgredir
不是說這真的很難,但是描述不是
措詞足以消除歧義。
這是我的嘗試。
(?i)(?<!\\S)(?=(?:\\d|([az])(?!\\1\\1\\1))+(?!\\S))(?=(?:([^\\Waceilorsu\\d_])(?!\\2\\2)|[aceilorsu\\d])+(?!\\S))(?:[^\\Waeiouy_]+|(?=[az\\d]*?(?:bstr|dscr|dstr|nscr|nstr|rscr|nsfl|nsfr))[az\\d]*?[^\\Waeiouy_](?:[az\\d]*?[^\\Waeiouy_]){2}[az\\d]*?)(?!\\S)
評論
(?i)
(?<! \S ) # Whitespace boundary
(?= # 3 successive max, no exceptions
(?:
\d
|
( [a-z] ) # (1)
(?! \1 \1 \1 )
)+
(?! \S )
)
(?= # 2 successive max, except one of [aceilorsu]
(?:
( [^\Waceilorsu\d_] ) # (2)
(?! \2 \2 )
|
[aceilorsu\d]
)+
(?! \S )
)
(?:
[^\Waeiouy_]+ # No vowels
| # or,
# 3 Not vowels
(?= # must be one of these to qualify
[a-z\d]*?
(?:
bstr
| dscr
| dstr
| nscr
| nstr
| rscr
| nsfl
| nsfr
)
)
[a-z\d]*?
[^\Waeiouy_]
(?: [a-z\d]*? [^\Waeiouy_] ){2}
[a-z\d]*?
)
(?! \S ) # Whitespace boundary
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.