我使用这个正则表达式
[\p{Greek}]
来匹配任何希腊字符。它按预期工作并匹配行中的第一个希腊字符。但是,我想匹配第一个字符之后的所有希腊字符,但 * 量词似乎不适用于希腊字符。
这是我的输入数据。前三个空格,一个双引号,然后是一个希腊语或拉丁语字符串,一个或多个空格,以 " 结尾,和一个新行。
"ξηλξλκξ λκλξλξ",
"lkjlkj kjljl",
"δδσασα ασδ ασδφ",
"xxaax asdsd dsds",
"δερεφε αδσφδσ",
一个。
^.*?[\p{Greek}|\s]
- 只匹配 all 行上的第一个空格。
b。
^.*?[\p{Greek}|\s]+
- 在 all 行匹配所有三个初始空格。
c。
^.*?"[\p{Greek}|\s]+
- 匹配用希腊字符书写的整行
d。
^.*?"[\p{Greek}|\s]*
- 匹配拉丁语行上的初始空格和 "
以及整行,不包括希腊语行末尾的 ",
。
e。
[\p{Greek}]*
- "
。然后匹配第一个单词,而不是单词之间的空格,(e) 超级混乱。如果我在字符串
"XYZ NOP",
上使用该正则表达式进行搜索和替换,并为当时找到的所有内容插入 A
(“替换并查找下一个”),结果看起来像这样 A A"XAYZA NAOPA",A
。但是,如果我执行“全部替换”,这就是结果 'A A A A"AXAYAZA ANAOAPA"A,'。尽管进行了搜索和替换,但所有原始字符仍保留,或多或少随机插入。
我不知道这里发生了什么。
这里有几个问题:
为此我正在使用 BBEdit。自 90 年代以来,我一直在使用 BBEdit 和正则表达式,并且从未遇到过任何有关其正则表达式实现的问题。但是 OTOH,我以前从未尝试过使用希腊字符。