我的文本文件有很多行這樣的:Reg ex需要找到兩個||
12345|any string |5585|more string|yet more string|safdowdjfpd|wdfiojeif
我想找到有此一行代碼之前空值:
12345|any string|5585||yet more string|safdowdjfpd|wdfiojeif
還有其他行的文件有空字符串,所以它只能是被捕獲的第三和第四個管道符號。
我的文本文件有很多行這樣的:Reg ex需要找到兩個||
12345|any string |5585|more string|yet more string|safdowdjfpd|wdfiojeif
我想找到有此一行代碼之前空值:
12345|any string|5585||yet more string|safdowdjfpd|wdfiojeif
還有其他行的文件有空字符串,所以它只能是被捕獲的第三和第四個管道符號。
這包含連續管匹配任何字符串,這些是字符串的第3和第4個管道:
^[^|]+\|[^|]+\|[^|]+\|\|
匹配:
12345|any string|5585||yet more string|safdowdjfpd|wdfiojeif
不匹配:
12|345|any string|5585||yet more string|safdowdjfpd|wdfiojeif
12345|any string|5585|yet more string|safdowdjfpd|wdfiojeif
一個非常簡單的字符串匹配:
/\|\|..\|/
這符合||隨後是任意兩個字符並以|結尾
好的,謝謝代碼不總是代碼它是兩個字符的任何組合,更新的問題 – NimChimpsky 2013-04-10 10:53:13
這不是從你的問題顯而易見,但我已更新回答匹配您的評論。 – 2013-04-10 10:54:54
到目前爲止您嘗試過哪些模式?其中有\\|{2}
?
嘗試此
/.*\|.*\|.*\|\|.*/
與egrep的
[[email protected] test]# echo "12345|any string|5585|annoying string|CODE|safdowdjfpd|wdfiojeif" | egrep -o ".*\|.*\|.*\|\|.*"
[[email protected] test]#
[[email protected] test]# echo "12345|any string|5585||CODE|safdowdjfpd|wdfiojeif" | egrep -o ".*\|.*\|.*\|\|.*"
12345|any string|5585||CODE|safdowdjfpd|wdfiojeif
[[email protected] test]#
測試計數的[任何字符]在該位置的數目:
/.+\|.+\|.+{0}\|.+\|.+\|.+\|.+/
[標籤:正則表達式] - 「請還包括標籤指定編程語言或工具,你使用「。 – Dukeling 2013-04-10 10:54:51