2011-12-29 52 views

Trả lời

22
\.(?=.*\.) 

Trận một dấu chấm (\.), đó có phải là một dấu chấm sau nó ((?=.*\.)).

(Điều này giả định động cơ regex hỗ trợ lookahead, ví dụ PCRE, Python, vv)

+0

Cảm ơn bạn đã làm việc này! Tôi đã cố gắng rất nhiều với lookahead, không thể làm cho nó hoạt động được. Chúc mừng! – malamili

+0

Hoạt động tốt với JavaScript. Bạn có thể nhận được regex của bạn giải thích [ở đây] (http://rick.measham.id.au/paste/explain.pl?regex=%5C.%28%3F%3D.*%5C.%29) – mayrs

+0

Hoạt động tốt với Java. – Gautam

2

Vì vậy, bạn không quy định cụ regex của bạn, động cơ, vv Vâng bạn có thể làm điều này với ví dụ sed (chỉ có tác dụng nếu luôn luôn có hai chữ số sau cuối dot và cuối cùng dot phải lúc nào cũng có mặt):

echo "50.00.00..00.00" | sed 's/\.//;s/\(..\)$/.\1/' 

Nhưng có một số cách khác, ví dụ với regex lookahead (nếu nó được hỗ trợ cho bạn).

HTH

+0

Có lẽ tôi đã đề cập đến điều đó, tôi đang sử dụng Java. Và câu trả lời của KennyTM đã làm việc cho tôi. Dù sao cũng cảm ơn! – malamili

Các vấn đề liên quan