2011-12-29 16 views
10

वर्ण यह मेरा स्ट्रिंग है: 50.00.00..00.00नियमित अभिव्यक्ति सब को छोड़कर पिछले एक

मैं इतना के बाद एक की जगह मैं अंत पिछले एक को छोड़कर सभी . मिलान करना चाहते हैं, 50000000.00

किसी ने मुझसे इस के साथ मदद कर सकते हैं ?

+3

क्या आप वर्तमान में उपयोग कर रहे रेगेक्स पैटर्न को पोस्ट कर सकते हैं? – user1231231412

उत्तर

22
\.(?=.*\.) 

एक बिंदु (\.) है, जो वहाँ यह ((?=.*\.)) निम्नलिखित एक और डॉट होना चाहिए मेल खाता है।

+0

धन्यवाद यह काम किया! मैं लुकहेड के साथ बहुत कोशिश कर रहा था, यह काम नहीं कर सका। चीयर्स! – malamili

+0

जावास्क्रिप्ट के साथ ठीक काम करता है। आप अपने रेगेक्स को समझा सकते हैं [यहां] (http://rick.measham.id.au/paste/explain.pl?regex=%5C.%28%3F%3D.*%5C.%29) – mayrs

+0

ठीक काम करता है जावा के साथ भी। – Gautam

2

अपने regex उपकरण तो आपके द्वारा निर्दिष्ट नहीं किया था, इंजन, आदि (यह regex इंजन lookahead, उदा PCRE, Python, आदि का समर्थन करता है मान लिया गया है) वैसे आप जैसे साथ ऐसा कर सकते sed (केवल वहाँ हमेशा दो अंक हैं काम के बाद पिछले dot और पिछले dot हमेशा मौजूद रहता है):

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

लेकिन कई अन्य तरीकों जैसे देखते हैं लुकहेड रेगेक्स के साथ (यदि यह आपके लिए समर्थित है)।

एचटीएच

+0

हां मुझे यह उल्लेख करना चाहिए था कि, मैं जावा का उपयोग कर रहा हूं। और केनीटीएम के जवाब ने मेरे लिए काम किया। फिर भी धन्यवाद! – malamili

संबंधित मुद्दे