正则表达式+匹配除字

时间:2017-01-17 00:02:46

标签: regex

我是Regex的新手,我正在尝试编写一个匹配不包含[a-zA-Z]的行,除非它包含单词NaN

到目前为止,我已经设法发现^((?![a-z]).)*$给了我每一行都没有字符,但是如果没有更好的术语,你会如何添加“例外”呢?

例如,我在文件中有以下行:

sci_water_pressure sci_water_temp
cc cc
4 4
NaN 7.4

我想让它与这些线匹配:

4 4
NaN 7.4

修改

此正则表达式的最终产品将在Java中使用。不知道这是否有助于/阻碍。

第二次修改

下面的一些答案似乎适用于我给出的示例,但由于某种原因,我尝试使用的整个文件没有。这是一个示例文件。

http://rubular.com/r/LzbB3nXcQP

dbd_label: DBD_ASC(dinkum_binary_data_ascii)file
encoding_ver: 2
num_ascii_tags: 14
all_sensors: 0
filename: skookum_346-2013-280-0-0
the8x3_filename: 01440000
filename_extension: sbd
filename_label: skookum_346-2013-280-0-0-sbd(01440000)
mission_name: initial.mi
fileopen_time: Tue_Oct__8_16:47:26_2013
sensors_per_cycle: 32
num_label_lines: 3
num_segments: 1
segment_filename_0: skookum_346-2013-280-0-0
c_ballast_pumped c_de_oil_vol c_heading c_wpt_lat c_wpt_lon m_altitude m_ballast_pumped m_battery_inst m_battpos m_depth m_de_oil_vol m_fin m_gps_lat m_gps_lon m_heading m_lat m_lon m_pitch m_present_secs_into_mission m_present_time m_roll m_water_depth m_water_vx m_water_vy sci_m_present_secs_into_mission sci_m_present_time sci_rinkoii_do sci_rinkoii_temp sci_rinkoii_voltage sci_water_cond sci_water_pressure sci_water_temp 
cc cc rad lat lon m cc volts in m cc rad lat lon rad lat lon rad sec timestamp rad m m/s m/s sec timestamp % degc volts s/m bar degc 
4 4 4 8 8 4 4 4 4 4 4 4 8 8 4 8 8 4 4 8 4 4 4 4 4 8 4 4 4 4 4 4 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 130.432 1381250778.43192 NaN NaN NaN NaN 130.432 1381250778.43192 0 0 0 0 0 0 
260 260 0 0 0 0 0 11.5481 1.39219 0 261.365 0.00298638 69696969 69696969 1.66679 4838.945 -12326.7857 0.020944 9.297 1381250786.32733 0.169297 -1 0 0 NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 14.2859 1381250791.28595 NaN NaN NaN NaN 14.2859 1381250791.28595 0 0 0 0 0 0 
260 260 0 0 0 0 0 11.6276 1.39219 0 261.279 0 69696969 69696969 1.66679 4838.945 -12326.7857 0.020944 79.339 1381250856.3692 0.169297 -1 0 0 NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 94.015 1381250871.04517 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 98.624 1381250875.65494 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 103.208 1381250880.23843 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0 261.322 0.00298638 NaN NaN NaN NaN NaN NaN 107.777 1381250884.80746 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 112.35 1381250889.3804 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 116.907 1381250893.93762 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0863 -12326.4584 NaN NaN NaN NaN 121.466 1381250898.49667 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0 261.336 0.00298638 4842.0888 -12326.4745 NaN NaN NaN NaN 126.145 1381250903.17502 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0913 -12326.4907 NaN NaN NaN NaN 131.132 1381250908.1629 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0938 -12326.5065 NaN NaN NaN NaN 135.803 1381250912.83408 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 140.455 1381250917.4855 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0 261.379 0 4842.0969 -12326.522 NaN NaN NaN NaN 145.015 1381250922.04526 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 4842.0994 -12326.5379 NaN 4842.09940010532 -12326.5379000009 NaN 149.682 1381250926.71268 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN 11.6158 NaN NaN NaN 0.00298638 4842.101 -12326.5542 NaN NaN NaN NaN 154.397 1381250931.427 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0.0497532 261.365 0 4842.1014 -12326.5704 NaN NaN NaN NaN 159.072 1381250936.10275 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.1006 -12326.5865 NaN NaN NaN NaN 166.156 1381250943.18665 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.098 -12326.6195 NaN NaN NaN NaN 170.827 1381250947.85818 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 175.498 1381250952.52893 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0.0221126 261.394 0 4842.0966 -12326.636 NaN NaN NaN NaN 180.06 1381250957.09055 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0953 -12326.6518 NaN NaN NaN NaN 184.744 1381250961.77478 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0936 -12326.6683 NaN NaN NaN NaN 189.419 1381250966.44937 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.092 -12326.6848 NaN NaN NaN NaN 194.087 1381250971.11713 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0 261.279 0.00298638 4842.0905 -12326.7012 NaN NaN NaN NaN 198.754 1381250975.78452 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0885 -12326.7177 NaN NaN NaN NaN 203.421 1381250980.45197 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0869 -12326.7339 NaN NaN NaN NaN 208.095 1381250985.12497 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0854 -12326.7504 NaN 4842.08540010532 -12326.7504000009 NaN 212.748 1381250989.77887 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN 11.6399 1.39219 0 261.365 0.00298638 4842.085 -12326.7669 NaN NaN NaN NaN 217.401 1381250994.43118 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0852 -12326.7837 NaN NaN NaN NaN 222.056 1381250999.0863 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.085 -12326.801 NaN NaN NaN NaN 226.714 1381251003.74423 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0847 -12326.8179 NaN NaN NaN NaN 231.362 1381251008.39227 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0 261.379 0.00298638 4842.0846 -12326.8345 NaN NaN NaN NaN 236.009 1381251013.03973 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 240.656 1381251017.68646 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 4842.0844 -12326.8511 NaN NaN NaN NaN 245.237 1381251022.267 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN 11.6371 1.39219 0 261.293 0.00298638 4842.0833 -12326.8837 NaN 4842.08330010531 -12326.8837000009 NaN 252.356 1381251029.38681 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 NaN NaN NaN NaN NaN NaN 288.444 1381251065.47467 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 293.03 1381251070.06015 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 297.596 1381251074.6261 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0 261.293 0.00298638 NaN NaN NaN NaN NaN NaN 302.162 1381251079.19315 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 306.746 1381251083.776 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 311.314 1381251088.34464 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 315.879 1381251092.90994 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0 261.408 0.00298638 NaN NaN NaN NaN NaN NaN 320.439 1381251097.4693 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 325.017 1381251102.04776 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 329.595 1381251106.62531 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39089 0 261.351 0.00298638 NaN NaN NaN NaN NaN NaN 338.31 1381251115.34052 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 342.914 1381251119.94452 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN 11.6454 NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 347.483 1381251124.51331 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 352.047 1381251129.07751 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0.243238 261.351 0.00298638 NaN NaN NaN NaN NaN NaN 356.607 1381251133.63779 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 361.187 1381251138.21762 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 365.749 1381251142.77979 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 370.315 1381251147.34592 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0.0773939 261.336 0.00298638 NaN NaN NaN NaN NaN NaN 374.883 1381251151.91348 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 379.485 1381251156.51575 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 384.07 1381251161.10059 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 388.654 1381251165.68399 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN 260 NaN NaN NaN NaN NaN NaN 1.39219 0 261.307 0.00298638 NaN NaN NaN NaN NaN NaN 393.236 1381251170.26596 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 397.829 1381251174.85919 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 402.401 1381251179.43143 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.00298638 NaN NaN NaN NaN NaN NaN 406.967 1381251183.9971 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 

编辑3 经过一番摆弄后,我得到了上面的完整文件,但是我不确定它为什么会起作用:

^([^a-zA-Z]*(NaN)*[^a-zA-Z]*)+$

2 个答案:

答案 0 :(得分:2)

试试这个:

^((NaN)?[^a-zA-Z\r\n])*$

请参阅live demo

这匹配不具有字母的行,但在其中的任何位置都允许NaN

答案 1 :(得分:1)

这应该适用于您更新的案例,假设您对"数字"感兴趣行:

^((NaN|([-.0-9]+))\s+)+$

如果您愿意,可以test it at regexr