验证0-1之间的数字
/^(0(\.\d+)?|1)$/
验证0-0.7之间的数字
/^0(\.[0-7]([0-9]+)?)?$/
验证多行xyz坐标 简化版
/^([A-Z][a-z]?([\f\r\t\v\x20]+\-*\d+\.\d+){3}\n)+$/g.test("C 1.62769 0.68648 0.15683\nC 0.92408 1.91164 -0.34790\nC 0.27373 0.56724 -0.47467\nC 2.80022 0.16204 -0.59083\nC 4.06275 0.90063 -0.21292\nC 5.26979 0.08338 -0.60009\nC 6.51690 0.77237 -0.10576\nC 7.72608 -0.07810 -0.40303\nC 8.96977 0.63767 0.06112\nH 2.07293 0.39328 1.11901\nH 1.27181 2.50445 -1.20677\nH 0.54785 2.71199 0.30624\nH 0.09182 0.06630 -1.43694\nH -0.63214 0.27385 0.07607\nH 2.62821 0.19748 -1.67672\nH 2.91395 -0.92207 -0.44329\nH 4.07542 1.15964 0.85608\nH 4.09347 1.90488 -0.66073\nH 5.30759 -0.09935 -1.68415\nH 5.19957 -0.94911 -0.22722\nH 6.44704 1.01569 0.96472\nH 6.61748 1.78129 -0.53235\nH 7.78391 -0.34446 -1.46872\nH 7.64050 -1.07817 0.04703\nH 9.85663 0.04832 -0.21481\nH 8.93629 0.75998 1.15378\nH 9.02362 1.62685 -0.41704\n")
验证多行xyz坐标 尾部可以没有\n 每行开头可以有除去\n 以外的空白字符 可以判断 xyz头部格式(头部格式是: 第一行是数字,第二行是名称)
/^([\f\r\t\v\x20]*\d+[\f\r\t\v\x20]*\n.*\n)?([\f\r\t\v\x20]*[A-Z][a-z]?([\f\r\t\v\x20]+-*\d+\.\d+){3}\n)+([\f\r\t\v\x20]*[A-Z][a-z]?([\f\r\t\v\x20]+-*\d+\.\d+){3}\s*)?$/g.test(' Si -3.03917572045049 -1.51367335441340 0.74984904010440\n Cl -3.31777602283000 -2.15100041582033 2.92923099201883\n Cl -4.06055232592060 -3.29100889352540 0.16220599855047\n Cl -4.04719433863401 0.29048675235761 1.25847117271253\n Cl -3.08493903396557 -0.84815154117952 -1.41217228645328\n N -0.66178044832122 -0.37668850275770 2.42075276023294\n C -0.64768356937405 0.84358187849168 1.83270478561675\n C -0.60079473090911 1.99292721502597 2.61672151949034\n C -0.55651325285966 0.55007069252174 4.56228613653933\n C -0.56495404718739 1.82337062477636 3.98726445142750\n H -0.58991750056817 2.96617965520840 2.16028168291567\n H -0.52612522482774 0.41810376334595 5.63253770346773\n H -0.54131392703656 2.69619949142876 4.62481859541220\n Pt -0.55761269049089 -1.48793043242484 0.71420807334805\n N -0.74097451574569 0.61147379933096 0.48437892938350\n N -0.08107264365597 -2.14858693514792 -1.18252637470046\n C 1.18266660139699 -1.64231302703533 -1.30344019149179\n C 1.85171866673008 -1.77319228789988 -2.52656265068009\n C -0.04655462302110 -3.02022375958528 -3.35936913474297\n C 1.22152441566301 -2.46131034000141 -3.54144161842275\n H 2.82889461300851 -1.34000125813926 -2.64911044867367\n H -0.53620868999418 -3.57647420724297 -4.14335136935904\n H 1.72424147849480 -2.57655068451077 -4.49155770135274\n N 1.54333973154996 -1.14338071493352 -0.10332805072261\n C -0.68340156251318 -2.84046401101371 -2.15249183522764\n H -1.66834338683950 -3.22214443320990 -1.94223761832330\n C -0.60616570555120 -0.55381528859462 3.74125522328742\n H -0.61533012392310 -1.56814222767374 4.10407065918321\n C -0.81153327317787 -3.57558509889195 1.59299339678315\n H -1.46362131919369 -4.13606546538952 0.94164228501154\n H -1.16182032857597 -3.41306527814784 2.59697084981637\n C 0.51431273384440 -3.39453432070426 1.27839035230099\n H 1.23235726207308 -3.07328413982879 2.01735827153067\n H 0.91310595161562 -3.80199573880855 0.36354432480959\n C 4.04330078613983 1.31755139010582 -0.51921116171210\n C 4.23766378636745 1.73660592258978 0.80346890334209\n N 3.56713832784345 1.15536857497814 1.79374336206961\n C 2.70611088746450 0.19022974136254 1.48676722618230\n C 2.48918182922923 -0.20225857776799 0.15755994178687\n N 3.18425322416500 0.36785150585992 -0.84383265745904\n H 4.93453565285183 2.52868032110169 1.04057697456926\n H 2.16525862295780 -0.28495645584104 2.29336062035317\n C 1.09377825491869 3.24513227437711 -0.99096190325454\n C 1.00840086876633 2.93442911047107 -2.35514155037672\n N 0.33605072668326 1.86368788534089 -2.75561183442463\n C -0.25207482882087 1.10172929815630 -1.83267971400004\n C -0.15139020194599 1.41107471459545 -0.47457402498095\n N 0.53293237607495 2.48926835372776 -0.06568870307963\n H 1.48400092235676 3.55942003132541 -3.09875310726741\n H -0.80881863634463 0.24293048265448 -2.16746323042158\n O 4.77012540470186 1.92486760909294 -1.47299823650224\n C 4.58457960337090 1.47763616656505 -2.82594593219618\n H 5.24927952830922 2.09098181874718 -3.42324151031747\n H 4.85096994485152 0.42758255328392 -2.92507664419968\n H 3.55451737662687 1.61795084796041 -3.14239034840563\n O 1.78461029987358 4.34250495367242 -0.64529031768749\n C 1.86067133074729 4.65881939392060 0.75514519296683\n H 2.47168825656572 5.55202491402215 0.81305788415550\n H 0.86948772561500 4.85410450938375 1.15826331868608\n H 2.32314548182076 3.84687114470724 1.30976952838082')
验证单行xyz坐标
/^[A-Z][a-z]?([\f\r\t\v\x20]+\-*\d+\.\d+){3}\n*$/g.test("C 1.62769 0.68648 0.15683");
验证有多少个xyz坐标的原子
'C 5.21933 2.05886 0.16452\nC 5.20755 3.41642 0.45700\nC 4.00131 4.11345 0.45047\nC 2.81874 3.44369 0.15406\nC 2.79365 2.06710 -0.13339\nC 4.02320 1.40309 -0.12890\nC 1.54006 1.35171 -0.49120\nC 0.29708 1.50396 0.34339\nC 1.04949 0.21666 0.36877\nH 1.78068 1.48529 -1.55622\nH 6.16828 1.50252 0.16418\nH 6.14636 3.93898 0.69275\nH 3.98413 5.18935 0.67883\nH 1.87446 4.00782 0.14418\nH 4.04891 0.32887 -0.36424\nH 0.22231 2.18249 1.20594\nH -0.71198 1.61102 -0.08127\nH 0.65516 -0.72732 -0.03545\nH 1.58944 -0.15585 1.25177\n'.match(/[A-Z][a-z]?([\f\r\t\v\x20]+\-*\d+\.\d+){3}/g)
验证正数
/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/
验证特殊字符
/\\|\/|:|\*|\?|"|'|<|>|\||#|&/g
获取流式文本,判断当前最后一句的标点符号的位置
'adsdadsa.'.search(/([。?!;\n\?!;]+$)|((?<!\d)\.+$)/gu)