2013-12-19 209 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 
相關問題