Ben [! @ # $%^& *()] böyle standart olarak tüm noktalama işaretleri, karşı maç için normal bir ifade gerekir, ancak ters İspanyol soru işareti gibi uluslararası markaları, Çinli dönemler de dahil olmak üzere vb Google-fu'm kısa sürüyor. Javascript ile uyumlu olan böyle düzenli bir ifade var mı?JavaScript düzenli ifade?
cevap
, JavaScript için bir eklenti var: XRegExp Unicode plugins. Bu Unicode kategoriler, komut dosyaları ve bloklar için destek ekler (ben şahsen sadece ben hiç kullanmadım, bu konuda okudum).
Bu eklenti ile regular-expressions.info adresinde açıklandığı gibi \p{P}
gibi Unicode kategorilerini kullanmak mümkün olmalıdır.
Güncelleme: Tamam, bunu test ve cezayı iş gibi görünüyor.
Sen XRegExp gelen lib ve ek Unicode Taban ve Unicode Kategori eklentileri (yukarıda bağlantısı) almak gerekir.
<script src="xregexp.js"></script>
<script src="addons/unicode-base.js"></script>
<script src="addons/unicode-categories.js"></script>
<script>
var unicodePunctuation = XRegExp("^\\p{P}+$");
alert(unicodePunctuation.test("?.,;!¡¿。、·")); // true
</script>
yukarıdaki uyarılar true
. Test dizgimde "?.,;!¡¿。、·"
'da İspanyolca ve Çince noktalama işaretleri ekledim.
Bu oldukça umut verici görünüyor, yine de başka bir kitaplık ile benim Javascript app kadar şişirmek için her zaman tereddüt ediyorum. Amacım için çalıştığımı teyit edince tekrar kontrol edeceğim. –
Teşekkür ederim. İşte bir kod JSBin (aşağıya kaydırın ve aynı zamanda Chrome konsoluna bakın) http://jsbin.com/uFiNeDOn/3/edit?js ,console –
Şey ... idk nasıl olacağını geniş, ancak bu kullanabilirsiniz:
[^\w\s\n\t]
Bu konuyla ilgili tek şey, '_ 'karakterinin' 'w' içinde yer almasıdır. . Ayrıca, yanlış pozitif olarak, ('ö' gibi) unicode harflerine izin verilir mi? – sdleihssirhc
'\ s',' \ n' ve '\ t' öğelerini içerir ve bu, ASCII olmayan sözcük karakterleri, denetim karakterleri, para birimi karakterleri ve diğer noktalama işareti olmayan karakterlerle de eşleşir. –
Diğer asalet karakterleri yanlış pozitif olarak dahil edildiğim şu andaki en büyük sorunum - Sanırım eşdeğer bir sorun, \ w (ve dolayısıyla \ W) –
benzer görünümde olacaktır Sizin regex ...
/[,[email protected]#$%^&*()\u9999]/
her \u9999
ile değiştirin Nerede Diğer noktalama karakterleri için Unicode kod noktası.
aralığı aralığında bir grup bulabilirseniz, -
aralık işleneni ile, örn. \u9990-\u9999
.
Ben JavaScript regexes içinde \pP
gibi bir şey kullanamazsınız bildiği gibi kadarıyla. Eğer bir eklenti kullanmak mümkün değilse
uluslararası eşdeğeri olan iyi bir regex bulmaktır. karakterleri - hala '[\ u9000- \ u9999] 'gibi değişkenler yapabilirsiniz (bu bir sözdizimi örneğidir, hangi karakterleri temsil edebileceğine dair bir fikir yoktur). –
@PeterBoughton: Ben sadece onu düzenledim :) – alex
@ stema'nın cevabını (https://stackoverflow.com/a/7578937/114140) eklemek ... burada bir dize olarak regex (böylece XRegExp ile projenizi şişirmeniz gerekmez).
!-#%-\x2A,-/:;\[email protected]\x5B-\x5D_\x7B}\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E3B\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65
bazı eklemelerle kendi projede bu kullanılan
... Python için// any kind of punctuation character (including international e.g. Chinese and Spanish punctuation)
// author: http://www.regular-expressions.info/unicode.html
// source: https://github.com/slevithan/xregexp/blob/41f4cd3fc0a8540c3c71969a0f81d1f00e9056a9/src/addons/unicode/unicode-categories.js#L142
// note: XRegExp unicode output taken from http://jsbin.com/uFiNeDOn/3/edit?js,console (see chrome console.log), then converted back to JS escaped unicode here http://rishida.net/tools/conversion/, then tested on http://regexpal.com/
// suggested by: https://stackoverflow.com/a/7578937
// added: extra characters like "$", "\uFFE5" [yen symbol], "^", "+", "=" which are not consider punctuation in the XRegExp regex (they are currency or mathmatical characters)
// added: \u3000-\u303F Chinese Punctuation for good measure
var regex_characters_to_remove = /[\$\uFFE5\^\+=`~<>{}\[\]|\u3000-\u303F!-#%-\x2A,-/:;\[email protected]\x5B-\x5D_\x7B}\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E3B\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]+/g
Bu normal ifadenin baştan çıkarmak ve noktalama işaretleri her türlü bitmesini:
import re
def cleanspecialcharacters(str):
regex = re.compile((
'^[/\"_\(\)&*\$¥\^\+=`~<>\{\}\[\]\|\-!#%\,\:;@¡§«¶·»¿;·՚-՟։֊؉،॥॰෴๏๚๛༄-༒༔༺-༽྅჻፠-፨᐀᙭᙮។-៖៘-៚‧‰-⁃⁅-⁑⁓-⁞⁽⁾₍₎、〃〈-【】〔-〟〰〽゠・﴾﴿︐-︙︰-﹒﹔-﹡﹣﹨﹪﹫!-#%-*,-/:;?@[-]_{}⦅-・〔〕《》]*|'
'([/\"_\(\)&*\$¥\^\+=`~<>\{\}\[\]\|\-!#%\,\:;@¡§«¶·»¿;·՚-՟։֊؉،॥॰෴๏๚๛༄-༒༔༺-༽྅჻፠-፨᐀᙭᙮។-៖៘-៚‧‰-⁃⁅-⁑⁓-⁞⁽⁾₍₎、〃〈-【】〔-〟〰〽゠・﴾﴿︐-︙︰-﹒﹔-﹡﹣﹨﹪﹫!-#%-*,-/:;?@[-]_{}⦅-・〔〕《》])*$'))
str = regex.sub('', str)
return str
- 1. Javascript Düzenli ifade
- 2. JavaScript düzenli ifade
- 3. JavaScript düzenli ifade yineleyici grupları
- 4. Ayrıştırma JavaScript düzenli ifade antlr
- 5. JavaScript düzenli ifade eşdeğer {L}
- 6. 'two' İki düzenli ifade arasındaki düzenli ifade
- 7. düzenli ifade
- 8. Javascript Düzenli İfade Çıkarma Boşlukları Kaldır
- 9. Javascript düzenli ifade onay bayrağı desteği
- 10. SQL Server düzenli ifade kısıtlaması
- 11. Belirli bir düzenli ifade dışında her şeyle eşleşen düzenli ifade
- 12. Düzenli İfade Minimum Uzunluğu
- 13. Önek düzenli ifade nedir?
- 14. Düzenli ifade .net
- 15. zaman için düzenli ifade
- 16. Özellikle java düzenli ifade
- 17. Dizin işlevinde düzenli ifade
- 18. düzenli ifade bağlantıları
- 19. Python String.Replace düzenli ifade
- 20. Düzenli ifade NIC
- 21. düzenli ifade \ Z (? Ms)
- 22. Örtüşen düzenli ifade
- 23. Dizgiden düzenli ifade oluşturma
- 24. Clojure satırlı düzenli ifade
- 25. Düzenli ifade tüm kelimeler
- 26. vurgu duyarsız düzenli ifade
- 27. Düzenli ifade hata mesajı
- 28. Kiril alfabesiyle düzenli ifade
- 29. bir Düzenli İfade
- 30. Laravel/Php düzenli ifade
kötü JavaScript'ın regex ve unicode desteği ne kadar göz önüne alındığında, ben eklemek istediğiniz tüm karakterleri listeleme dışında bir şey olduğunu sanmıyorum. – NullUserException
Not: '@ # $%^& *' haline noktalama işaretleri ne zaman? – NullUserException
iki göz – RHT