2013-12-19 211 views
0

我试图匹配包含英文和非英文字符但不包含纯数字(包含小数)的句子。正则表达式匹配英文和非英文字符

例子 - 应该匹配::

Renforcé-Bettwäschegar BLUMIRA123 

不匹配::

999.99 

下面的代码相匹配,这不是包含在ASCII字符的一切 -

[^\u0000-\u0080]+ 

这是我现在所拥有的一切。任何帮助都感激不尽。

谢谢。

+0

因此,它应该符合其中至少包含一个英文字母([A-ZA-Z])和一个重音/音调符号的字母([àáâäåÀÁÂÃçÇêéëèÊËÉÈïíîìÍÌÎÏñÑöòõóÓÔÕÖÒšŠúüûùÙÚÜÛÿŸýÝžŽ])的字符串?是否需要非ASCII字符? – mtanti

+0

mtanti - 感谢您的评论。不需要非ASCII字符。谢谢。 –

回答

0

感谢您的输入。下面的正则表达式似乎为我工作。

^([x00-\xFF]+[a-zA-Z][x00-\xFF]+)* 
+1

你确定吗?它看起来不符合你所描述的内容。这将匹配只包含ASCII字符的行开头的任何文本,中间有一个英文字母,而不是开头或结尾。文本不必包含重音字母。 – mtanti

1

这应该做的伎俩

!/^[0-9.]+$/.test(s)

请注意,只会匹配数字和小数点,所以你需要否定它

+0

我认为OP需要重音字母和非重音字母,尽管非重音字母例如不会。 – mtanti

+0

'!/^[0-9。] + $ /。test(“BLUMIRA 123”);'将返回“true”,但由于它包含“纯数字”来引用OP,这是错误的。 – psxls

+0

我知道字符串只能包含数字才会出错 – mattecapu

1

看看这工作(的!):

.*([a-zA-Z].*[àáâäåÀÁÂÃçÇêéëèÊËÉÈïíîìÍÌÎÏñÑöòõóÓÔÕÖÒšŠúüûùÙÚÜÛÿŸýÝžŽ]|[àáâäåÀÁÂÃçÇêéëèÊËÉÈïíîìÍÌÎÏñÑöòõóÓÔÕÖÒšŠúüûùÙÚÜÛÿŸýÝžŽ].*[a-zA-Z]).* 
2

首先,我假设你已经将你的文本分割成句子。那就试试这个:

!/(?:^|)[0-9]+(?:\.[0-9]+)?(?: |$)$/.test(sentence); 

例如,这是每个下面句子的返回结果:

Renforcé-Bettwäschegar BLUMIRA123 //true 
999.99       //false 
Another test      //true 
Hi this is a test 124    //false 
Hi this is a test 124.23   //false 
相关问题