1

我需要有关正则表达式的帮助。

我必须像这样匹配字符串:âãa34dc

我用过的模式:

\s*[a-zA-Z]+[a-zA-Z_0-9]*\s

但是这种模式不足以识别这种字符串,例如âãa34dc

PS âã 这些都是瑞典字符。

请帮我找出这种字符串的正确模式。

4

3 回答 3

3

您真的想将其限制为瑞典语字符吗?换句话说,德国字符不应该匹配吗?如果是这样,那么您可能必须枚举整个字母表,并将其包括在内。

如果您真正想要的是匹配每个字母字符,请使用正则表达式术语来匹配所有字母。

\w匹配任何单词字符,但包括数字和一些标点符号。这很接近,但不完全是你想要的第二个任期。

对于第一个术语,您不想包含数字,指定字符应该是 Unicode“字母”类将起作用。\p{L}指定作为字母的所有 Unicode 字符。这包括 [a-zA-Z],以及所有瑞典语字符,以及德语和俄语等。

因此,我认为这个正则表达式就是你想要的:

\s*[\p{L}][\p{L}_0-9]*\s

如果您想包含来自其他字符集的数字和其他一些标点符号,那么您可以使用[\w]*第二个术语。

于 2012-04-06T18:53:37.573 回答
0

请给出一套规则。

根据你的问题:

    [X-Ya-zA-Z]{3}[0-9]{2}[a-zA-Z]{2}

将 X 替换为第一个瑞典字母

用最后一个瑞典字母替换 Y

于 2012-04-06T18:32:28.467 回答
0

John Machin对此提供了很好的答案。适应他的模式,你需要的可能类似于:\s*[^\W\d_]\w*\s*

PS我+从你的第一部分中删除了量词。任何后续字母都将与后续 quantified 匹配\w

于 2012-04-06T18:48:04.783 回答