使regexp匹配字复杂化(可能吗?)
我希望正则表达式匹配所有不符合以下条件的希腊语(utf-8)单词:使regexp匹配字复杂化(可能吗?),regex,utf-8,Regex,Utf 8,我希望正则表达式匹配所有不符合以下条件的希腊语(utf-8)单词: 以结尾 以- 以结尾。 以数字结尾(1-9) 从开始 从, 从- 第一个字母是大写 所有字母都是大写 这可能吗?为了匹配希腊文单词,我使用\p{Greek}{3,}匹配至少有3个字符的希腊文UTF-8单词 我用ruby编写程序,但如果可以用perl或任何其他cli工具/语言编写,我会编写一个脚本,将输出转储到文本文件中。(?)? (?<!\S)(?=\S*\p{Greek})(?![-,.\p{Lu}])(?![\p{
- 以
结尾
- 以
-
- 以
结尾。
- 以数字结尾(1-9)
- 从
开始
- 从
,
- 从
-
- 第一个字母是大写
- 所有字母都是大写
\p{Greek}{3,}
匹配至少有3个字符的希腊文UTF-8单词
我用ruby编写程序,但如果可以用perl或任何其他cli工具/语言编写,我会编写一个脚本,将输出转储到文本文件中。(?)?
(?<!\S)(?=\S*\p{Greek})(?![-,.\p{Lu}])(?![\p{Lu}\P{L}]+\b)\S+(?<![-.'1-9])(?!\S)
> S+</代码>,中间由一组正反断言包围。
<代码>(?)-单词之前不能有非空白字符。这样我们就不会在单词的中间开始匹配。
(?=\S*\p{希腊文})
-其中必须至少有一个希腊文字母
(?![-,.\p{Lu}])
-单词不能以破折号、逗号、点或大写字母开头\p{Lu}
(?![\p{Lu}\p{L}]+\b)
-单词不能都是大写字母和符号
(?
(?
> S+</代码>,中间由一组正反断言包围。
<代码>(?)-单词之前不能有非空白字符。这样我们就不会在单词的中间开始匹配。
(?=\S*\p{希腊文})
-其中必须至少有一个希腊文字母
(?![-,.\p{Lu}])
-单词不能以破折号、逗号、点或大写字母开头\p{Lu}
(?![\p{Lu}\p{L}]+\b)
-单词不能都是大写字母和符号
(?
这是一个开始,但对我不起作用:但它可能是一个起点。@atmosx什么单词不正确(不)匹配?你能把它们粘贴到这里让我测试吗?我有。在上使用正则表达式我匹配以下不需要的单词:[code>][code>-它有一个[
&它的大写字母,修复了,所以它不匹配[ETYM
或与您的代码无关,但Ruby的拉丁脚本实现似乎存在缺陷-大写英文字母字符不匹配。这是一个开始,但对我不起作用:但它可能是一个开始。@atmosx哪些单词不正确(不正确)匹配?你能把它们粘贴在这里让我测试吗?我有。在上使用你的正则表达式,我匹配以下不需要的单词:[代码]-它有一个[
&它的大写字母,固定了,所以它不匹配[ETYM
或与您的代码无关,但Ruby的拉丁脚本实现似乎存在缺陷-大写英文字母字符不匹配。