2011-11-29 14 views
5

मैं रेगेक्स के साथ एक शब्द को कैसे पहचान सकता हूं जिसमें इसमें संख्याएं हो सकती हैं। तो मैं "string1", "12inches", "log4net" को कैप्चर करना चाहता हूं। लेकिन 12/11/2011 या 18 नहीं? दुर्भाग्य से \b[\p{L}\d\p{M}]+\b संख्यात्मक भी पकड़ लेता है।शब्द संख्यात्मक

उत्तर

2

यह:

Regex regexObj = new Regex(@"\b(?=\S*[a-z])\w+\b", RegexOptions.IgnoreCase); 
    Match matchResults = regexObj.Match(subjectString); 
    while (matchResults.Success) { 
     // matched text: matchResults.Value 
     // match start: matchResults.Index 
     // match length: matchResults.Length 
     matchResults = matchResults.NextMatch(); 
    } 

मन में आता है।

" 
\b   # Assert position at a word boundary 
(?=   # Assert that the regex below can be matched, starting at this position (positive lookahead) 
    \S   # Match a single character that is a “non-whitespace character” 
     *   # Between zero and unlimited times, as many times as possible, giving back as needed (greedy) 
    [a-z]  # Match a single character in the range between “a” and “z” 
) 
\w   # Match a single character that is a “word character” (letters, digits, etc.) 
    +   # Between one and unlimited times, as many times as possible, giving back as needed (greedy) 
\b   # Assert position at a word boundary 
" 
+0

धन्यवाद। दरअसल मुझे थोड़ा मुश्किल समस्या है: मुझे रिक्त स्थान या हाइफ़न द्वारा वाक्यांशों को पहचानने की आवश्यकता है और यह है: (? <= \ B ([\ p {L} \ p {M}] + | \ s) \ b) [\ रों \ p {पी.डी.} \ रों] (? = \ बी [\ p {एल} \ p {M}] \ ख)। बाएं और दाएं कोष्ठक का मतलब कुछ शब्द है (उमोट्स हो सकता है)। अब मैं देखता हूं कि आपने कुछ आगे संदर्भ में भी प्लग किया है। – Nickolodeon

+0

@ निकोलोडियन मुझे लगता है कि आपको अपने प्रश्न को समान रूप से संपादित करना चाहिए क्योंकि मेरा जवाब इसका उत्तर देता है। इनपुट/आउटपुट के कुछ उचित नमूने पोस्ट करें ताकि हम मदद कर सकें। – FailedDev

+0

खैर, क्षमा करें, मैं सवाल को सरल बनाना चाहता था, इसलिए मुझे लगता है कि इसका सिर्फ एक हिस्सा पूछा। मुझे 1 की आवश्यकता है) रोबोकॉप - 3 => रोबोकॉप 3। 2) हैलो 2 => हैलो 2 3) हैलो वर्ल्ड => हेलोरेल्ड। यह रिक्त स्थान या हाइफ़न btwn शब्दों को हटा रहा है अगर आसन्न में से कोई भी संख्या या तारीख नहीं है। – Nickolodeon

0

आप इसमें दोनों अक्षरों और संख्याओं के साथ एक शब्द मिलान करना चाहते हैं? यह काम करना चाहिए: \b(\w+\d+|\d+\w+)[\w\d]+\b

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