2015-04-04 23 views
0

Im tryig, чтобы найти цифру с использованием Regex Vbscript, я использовал \d{1} или \d, найдя любые цифры от слова или даты, я просто не хочу извлекать из даты или строки, ее только цифру, нет ничего вокруг цифры или точки (.), как я могу ее найти?Найти цифру с помощью Regex

Пример

12/12/2009 - No need to match 

09 - no need to match 

8. match 

7 match 

Может кто-нибудь мне помочь?

+1

Stack Overflow это сайт для энтузиастов программирования , Лучший способ получить помощь здесь - сначала попробовать что-то. Если вы застряли, сделайте некоторые исследования, сделайте попытку исправить вещи самостоятельно, и только тогда задайте конкретный вопрос о своих попытках, показывая, что вы пробовали. Вопросы, требующие полных решений без демонстрации исследовательских усилий, обычно закрываются и закрываются. Не говоря уже о том, что перемещение стойки ворот после того, как ответы были предоставлены, не является чем-то, что рассматривается положительно. –

ответ

0

Вы можете использовать регулярное выражение Лик это:

(^|[\b\s])\d\b 

Working demo

enter image description here

+0

Это сопоставление с '1, я хотел, чтобы избежать идентификации' '4 " – user2548018

+0

@ user2548018 Я только что обновил свой ответ. Посмотрите сейчас –

0

Если ваши спецификации "матч строки, состоит ровно из одной цифры", использование «^ \ d $ "(начало строки - одна цифра - конец строки) - как в

>> Set r = New RegExp 
>> r.Pattern = "^\d$" 
>> For Each s In Split("12/12/2009 09 8 7 a7b") 
>>  WScript.Echo s, CStr(r.Test(s)) 
>> Next 
>> 
12/12/2009 False 
09 False 
8 True 
7 True 
a7b False 

Если нет, опишите свои спецификации недвусмысленно.

Update:

Как я скучал точку в "8." и смешанные «содержат» и «состоят», я бросаю в «^ \ D * \ d \ D * $» для «спичечных строк, содержащих ровно одну цифру»:

>> r.Pattern = "^\D*\d\D*$" 
>> For Each s In Split("2/1/2009 09 8. 7 a7b") 
>>  WScript.Echo s, CStr(r.Test(s)) 
>> Next 
>> 
2/1/2009 False 
09 False 
8. True 
7 True 
a7b True 
Смежные вопросы