كيف يمكنني العثور على جميع المعرفات الفريدة العمومية في بعض النصوص؟

StackOverflow https://stackoverflow.com/questions/644504

  •  22-07-2019
  •  | 
  •  

سؤال

ولقد حصلت على حفنة من محتوى صفحة ويب في قاعدة البيانات الخاصة بي مع وصلات من هذا القبيل:

<a href="/11ecfdc5-d28d-4121-b1c9-1f898ac0b72e">Link</a>

وهذا ارشد المعرف الفريد هو معرف <م> آخر في نفس قاعدة البيانات.

وأود أن الزحف تلك الصفحات والتحقق من وجود كسر الروابط.

لفعل ذلك انا بحاجة الى وظيفة التي يمكن إرجاع قائمة من كافة المعرفات الفريدة العمومية على الصفحة:

Function FindGuids(ByVal Text As String) As Collections.Generic.List(Of Guid)
    ...
End Function

واعتقد انه هذه هي وظيفة للتعبير عادي. ولكن، وأنا لا أعرف بناء الجملة.

هل كانت مفيدة؟

المحلول

Function FindGuids(ByVal Text As String) As List(Of Guid)
    Dim Guids As New List(Of Guid)
    Dim Pattern As String = "[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}"
    For Each m As Match In Regex.Matches(Text, Pattern)
        Guids.Add(New Guid(m.Value))
    Next
    Return Guids
End Function

نصائح أخرى

<اقتباس فقرة>   

[0-9a-و] {8} - [0-9a-و] {4} - [0-9a-و] {4} - [0-9a-و] {4} - [0- 9A-و] {12}

وأقترح عليك الاستيلاء على نسخة مجانية من اكسبرسو ، وتعلم كيفية بناء عليها!

وهنا هو محاولة ثانية 10 مع عدم وجود التحسين، ويتحقق حالة العلوية والسفلية ويخلق مجموعة التقاط مرقمة:

([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})

وبعد ذلك عليك أن تكرار خلال مجموعة مطابقة ...

وهناك أسهل الطرق للتحقق من كسر الروابط .... على سبيل المثال أعتقد HTTP: //www.totalvalidator كوم / سوف نفعل ذلك: D

وهذا يمكن أن يساعد أيضا

static Regex isGuid = 
    new Regex(@"^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$", RegexOptions.Compiled);

ثم

static bool IsGuid(string candidate, out Guid output)
{
bool isValid = false;
output=Guid.Empty;
if(candidate!=null)
{

 if (isGuid.IsMatch(candidate))
 {
  output=new Guid(candidate);
  isValid = true;
 }
}
return isValid;

و}

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top