我需要有关正则表达式的帮助。
我必须像这样匹配字符串:âãa34dc
我用过的模式:
\s*[a-zA-Z]+[a-zA-Z_0-9]*\s
但是这种模式不足以识别这种字符串,例如âãa34dc
PS âã 这些都是瑞典字符。
请帮我找出这种字符串的正确模式。
您真的想将其限制为瑞典语字符吗?换句话说,德国字符不应该匹配吗?如果是这样,那么您可能必须枚举整个字母表,并将其包括在内。
如果您真正想要的是匹配每个字母字符,请使用正则表达式术语来匹配所有字母。
\w
匹配任何单词字符,但包括数字和一些标点符号。这很接近,但不完全是你想要的第二个任期。
对于第一个术语,您不想包含数字,指定字符应该是 Unicode“字母”类将起作用。\p{L}
指定作为字母的所有 Unicode 字符。这包括 [a-zA-Z],以及所有瑞典语字符,以及德语和俄语等。
因此,我认为这个正则表达式就是你想要的:
\s*[\p{L}][\p{L}_0-9]*\s
如果您想包含来自其他字符集的数字和其他一些标点符号,那么您可以使用[\w]*
第二个术语。
请给出一套规则。
根据你的问题:
[X-Ya-zA-Z]{3}[0-9]{2}[a-zA-Z]{2}
将 X 替换为第一个瑞典字母
用最后一个瑞典字母替换 Y
John Machin对此提供了很好的答案。适应他的模式,你需要的可能类似于:\s*[^\W\d_]\w*\s*
PS我+
从你的第一部分中删除了量词。任何后续字母都将与后续 quantified 匹配\w
。